2011-08-23 13 views
8

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

+0

W wersji C++ deserializacja BSONObj nie jest opcją. Powinien być bardzo szybki. – ArtemGr

Odpowiedz

5

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.