Po this benchmark BSON potrzebuje więcej miejsca na dysku, czasu na utworzenie, serializację, deserializację i przechodzenie przez wszystkie elementy. Dużą zaletą BSON jest to, że jest znacznie szybszy w ruchu. Co jest nie tak z tym wzorcem?Benchmark: BSON vs JSON
Odpowiedz
Twoje pytanie jest niejasne. Kto twierdzi, że "dużą zaletą BSON jest to, że jest on znacznie szybszy w ruchu". Wikipedia mówi, że BSON jest zaprojektowany ", aby być efektywnym zarówno w przestrzeni dyskowej i skanowanie prędkości" - ale to tylko oznacza, że projektanci próbowali, nie, że im się udało.
Należy zauważyć, że benchmark porównuje wiele implementacji JSON, a są one zarówno szybsze, jak i wolniejsze; najwyraźniej ktoś spędził dużo czasu na pisaniu zoptymalizowanych analizatorów JSON - w rzeczy samej, strona FastJson wyjaśnia (po chińsku, którą czytałem w Tłumaczu Google) szereg zaawansowanych technik implementacji.
Zobacz także Performant Entity Serialization: BSON vs MessagePack (vs JSON)
Konkluzja: punktem odniesienia może być źle lub może mieć również nic złego. Autorzy sugerują, aby spróbować odtworzyć dane dla konkretnego scenariusza, tak jak to jest w ogólności, ponieważ benchmarki to tylko punkty danych. Więc spróbuj uruchomić benchmark dla BSON i FastJSON (lub co jeszcze ma ciekawą wydajność dla JSON) z danymi, które są dla ciebie reprezentatywne.
W wersji C++ deserializacja BSONObj nie jest opcją. Powinien być bardzo szybki. – ArtemGr