protocol buffer lite与常规协议缓冲区

lur*_*her 37 c++ serialization protocol-buffers

我一直在研究c ++序列化框架,占用空间小,性能好.我找到了这个帖子

c ++网络序列化

这基本上建议使用精简版协议缓冲区.从这个页面不清楚Lite版本的具体功能是什么

我的问题是; 坚持使用协议缓冲区精简版会丢失什么功能?

kar*_*doc 40

"lite"版本无法序列化为或来自iostream或" FileDescriptor",并且它不能使用该Reflection功能,以及...散布其他功能.

我的建议是只使用lite版本,直到遇到需要完整版本的功能.从一个切换到另一个非常容易.

如果您需要查看精简版缺少的列表,我建议浏览<google/protobuf/message.h>.基本上,包含文件中的所有内容都是完整版本所独有的.(<google/protobuf/message_lite.h>#include从完整的D版).这里有一个链接: https://github.com/google/protobuf/blob/master/src/google/protobuf/message.h

  • 阅读上面的评论是一种情绪过山车。 (8认同)
  • 从Protocol Buffers v3.5.0开始,再次支持`optimized_for = LITE_RUNTIME`:https://developers.google.com/protocol-buffers/docs/proto3#options (5认同)
  • 自 [Protocol Buffers v3.0.0](https://github.com/google/protobuf/releases/tag/v3.0.0) 起,不再支持 `optimized_for=LITE_RUNTIME`。 (3认同)
  • 如果您使用 lite 版本,请不要忘记将 `option optimize_for = LITE_RUNTIME;` 添加到您的 .proto 文件中。 (2认同)