2011-06-19 13 views
25

私は、C++のシリアライゼーションフレームワークが小さなフットプリントと優れたパフォーマンスを持つことを調査しています。私はこのスレッドプロトコルバッファliteと通常のプロトコルバッファー

基本的には、プロトコル・バッファーのLiteバージョンを使用することをお勧め

c++ network serialization

を見つけました。 this pageからライト版の特定の機能は何ですか?

私の質問は次のとおりです。どのような機能は、プロトコルバッファライトに固執するときに失うのですか?

答えて

26

「ライト」バージョンがiostreamにまたはからシリアライズすることができない、または「FileDescriptor」、そしてそれがReflection機能を使用することはできません、と...他の機能の散乱。

私のアドバイスは、フルバージョンを必要とする機能を見つけるまでliteバージョンを使用することです。 1つのスイッチから他のスイッチへの切り替えは非常に簡単です。

ライトバージョンのリストが不足している場合は、<google/protobuf/message.h>を参照することをお勧めします。基本的には、インクルードファイル内のすべてがフルバージョン専用です。 (。<google/protobuf/message_lite.h>はフルバージョンから#include dとする) ここにリンクです: https://github.com/google/protobuf/blob/master/src/google/protobuf/message.h

+0

'= LITE_RUNTIME optimize_forオプションを追加することを忘れないでください;'あなたの.protoファイルにあなたはLiteバージョンを使用している場合。 – rustyx

+1

[Protocol Buffers v3.0.0](https://github.com/google/protobuf/releases/tag/v3.0.0)以降、 'optimized_for = LITE_RUNTIME'はサポートされなくなりました。 – david

関連する問題