哪个protobuf优化?

时间:2010-12-14 12:07:56

标签: c++ optimization protocol-buffers

使用谷歌的协议缓冲编译器进行c ++时,不清楚哪个更快:优化速度:

option optimize_for = SPEED;

或优化灯光运行时间:

option optimize_for = LITE_RUNTIME;

如果速度更快,是什么让它更快? 有没有人有关于这个问题的硬数据?

1 个答案:

答案 0 :(得分:17)

我阅读documentation

的方式
  • 针对CODE_SIZE进行优化不会为所有内容生成快速访问器方法,但依赖于慢速反射,

  • 针对SPEED优化将为您提供快速访问者

  • 并优化LITE_RUNTIME也会为您提供快速访问,但不支持protobuf的全部功能,但只支持较轻的子集protobuf-lite。基本上,这意味着描述符或反射不可用。

所以我猜,LITE_RUNTIME并不比SPEED慢,你应该根据你想要的运行库(精简或全部)来选择。

  

如果速度更快,是什么让它更快?

与CODE_SIZE相比,SPEED更快,因为它使用自动生成的代码而不是运行时反射。