7

std コンテナーに格納されているデータのシリアル化と逆シリアル化を多数行う必要がある分散 C++ アプリケーションを構築しています。

現在、Boost.serialization が採用されています。しかし、それはひどい性能です。弊社の B-tree も Boost.serialization を使用してキーと値のペア データを格納しますが、Boost.serialzation を memcpy に変更すると、アクセス速度が 10 倍以上向上します。現在の分散プラットフォームでは、非常に多くのデータ交換が必要になるため、簡単なプログラミングも高いパフォーマンスと共に求められます。プロトコル バッファもシリアライゼーション メカニズムとして使用できることは知っていますが、Boost.serialization とプロトコル バッファのパフォーマンス比較についてはよくわかりません。別の問題は、memcpy に近いパフォーマンスを提供するためのより良いソリューションが存在するかどうかです。

ありがとう

4

1 に答える 1

1

誰かが非常によく似た質問をしました: C++ シリアライゼーション パフォーマンス

プロトコル バッファは良い方法のように見えますが、アプリケーションの要件を知らなければ、特定のライブラリや手法を推奨することは困難です。

于 2009-03-24T22:14:41.313 に答える