2009-03-24 16 views
7

Sto costruendo un'applicazione C++ distribuita che deve eseguire molta serializzazione e deserializzazione dei dati memorizzati nei contenitori std.Prestazioni di serializzazione C++

Attualmente viene adottata la Boost.serialization. Tuttavia, si comporta terribilmente. Il nostro albero B usa anche Boost.serialization per memorizzare i dati della coppia valore-chiave, tuttavia, se cambiamo Boost.serialziation su memcpy, la velocità di accesso sarà migliorata 10 volte o più. Dato l'attuale piattaforma distribuita, sono necessari molti scambi di dati, pertanto è richiesta anche una facile programmazione insieme ad alte prestazioni. So che il protocollo buffer può anche essere usato come un meccanismo di serializzazione, tuttavia, non sono sicuro del confronto delle prestazioni tra Boost.serialization e il protocollo buffer, un altro problema è, esistono soluzioni migliori per fornire prestazioni più elevate vicino a memcpy?

Grazie

+0

per quanto ne so, la serializzazione potenziata ha diversi archivi. usi l'archivio binario? –

+0

Stai serializzando su disco, o semplicemente inviando i dati sul filo? –

+0

Visualizza il confronto grafico qui:
http://code.google.com/p/thrift-protobuf-compare/wiki/Benchmarking – lsalamon

risposta

1

Qualcuno ha chiesto una domanda molto simile: C++ Serialization Performance

Sembra che i buffer di protocollo sono un buon modo per andare, anche se senza conoscere i requisiti delle vostre applicazioni, è difficile consigliare qualsiasi libreria particolare o tecnica.