2011-08-23 4 views
8

Seguendo this benchmark BSON ha bisogno di più spazio su disco, tempo per creare, serializzare, deserializzare e attraversare tutti gli elementi. Il grande vantaggio di BSON è che è molto più veloce nel percorrere. Allora, cosa c'è di sbagliato in questo punto di riferimento?Indice: BSON vs JSON

+0

Nella versione C++ la deserializzazione BSONObj è un no-op. Dovrebbe essere molto veloce. – ArtemGr

risposta

5

La tua domanda non è chiara. Chi sostiene che "Il grande vantaggio di BSON è che è molto più veloce nel percorrere".? Wikipedia dice che BSON è progettato "per essere efficiente sia nello spazio di archiviazione che nella velocità di scansione" - ma ciò significa solo che i progettisti hanno provato, non che ci sono riusciti.

Si noti che il benchmark confronta molte implementazioni JSON e ci sono sia più veloci che più lente; a quanto pare qualcuno ha passato molto tempo a scrivere parser JSON ottimizzati - in effetti il ​​sito Web di FastJson spiega (in cinese, che ho letto tramite Google Translate) una serie di tecniche di implementazione avanzate.

Vedi anche Performant Entity Serialization: BSON vs MessagePack (vs JSON)

Linea di fondo: il punto di riferimento potrebbe essere sbagliato o potrebbe anche avere nulla di sbagliato. Gli autori suggeriscono di provare a riprodurre i dati per il proprio scenario specifico, come è buona pratica in generale, poiché i benchmark sono solo punti dati. Quindi prova a eseguire il benchmark per BSON e FastJSON (o cos'altro ha prestazioni interessanti per JSON) con dati che sono rappresentativi per te.