Divej, když chceš něco používat, je potřeba si přečíst dokumentaci. Simdjson nabízí opravdu bohaté možnosti v tomto směru. Konkrétně:
We expect users of an On Demand API to work in terms of a JSON dialect, which is a set of expectations and specifications that come in addition to the JSON specification.
Validate What You Use: On Demand deliberately validates the values you use and the structure leading to it, but nothing else. The goal is a guarantee that the value you asked for is the correct one and is not malformed: there must be no confusion over whether you got the right value.
Tvůj příklad dokazuje to, že buď nečteš dokumentaci, a nebo naschvál upravils zrovna tu část dokumentu, kde se ten parser nedostane. Když poškodíš něco předtím, dostaneš krásný error:
TAPE_ERROR: The JSON document has an improper structure: missing or superfluous commas, braces, missing keys, etc.
Jak smutné. Nepálí cykly na práci, kterou není potřeba udělat. Kus jsonu který nepotřebuju číst není potřeba ani validovat. Kdybych ho potřeboval zvalidovat, tak ho postě projdu celý.
Ty měřené GB/s jsou včetně validace (která samozřejmě proběhne, když je ta data třeba číst a zpracovat). nlohmann je pomalejší protože sestavuje DOM se vším co k tomu přísluší. Ano, kdyby simdjson dělal pomalé sestavování DOMu jako nlohmann, byl by srovnatelně pomalý.
Simdjson má i DOM:
https://github.com/simdjson/simdjson/blob/master/doc/dom.md
I ten DOM parsing bude mnohem rychlejší.