私は、C++のシリアライゼーションフレームワークが小さなフットプリントと優れたパフォーマンスを持つことを調査しています。私はこのスレッドプロトコルバッファliteと通常のプロトコルバッファー
基本的には、プロトコル・バッファーのLiteバージョンを使用することをお勧めを見つけました。 this pageからライト版の特定の機能は何ですか?
私の質問は次のとおりです。どのような機能は、プロトコルバッファライトに固執するときに失うのですか?
私は、C++のシリアライゼーションフレームワークが小さなフットプリントと優れたパフォーマンスを持つことを調査しています。私はこのスレッドプロトコルバッファliteと通常のプロトコルバッファー
基本的には、プロトコル・バッファーのLiteバージョンを使用することをお勧めを見つけました。 this pageからライト版の特定の機能は何ですか?
私の質問は次のとおりです。どのような機能は、プロトコルバッファライトに固執するときに失うのですか?
「ライト」バージョンが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
'= LITE_RUNTIME optimize_forオプションを追加することを忘れないでください;'あなたの.protoファイルにあなたはLiteバージョンを使用している場合。 – rustyx
[Protocol Buffers v3.0.0](https://github.com/google/protobuf/releases/tag/v3.0.0)以降、 'optimized_for = LITE_RUNTIME'はサポートされなくなりました。 – david