protobuf解析2-proto文件格式

选项参数
optimize_for: 它可取SPEED,CODE_SIZE,LITE_RUNTIME三者之一作为参数值,当文件中没有该选项时系统默认其值为SPEED。
上述三个选项的作用如下:
SPEED protobuf编译器将通过在消息类型上执行序列化、语法分析及其他通用的操作。这种代码是最优的。
CODE_SIZE protobuf编译器将会产生最少量的类,通过共享或基于反射的代码来实现序列化、语法分析及各种其它操作。采用该方式产生的代码将比SPEED要少得多,但是操作要相对慢些。当然实现的类及其对外的API与SPEED模式都是一样的。这种方式经常用在一些包含大量的.proto文件而且并不盲目追求速度的应用中。
LITE_RUNTIME protobuf编译器依赖于运行时核心类库来生成代码(即采用libprotobuf-lite 替代libprotobuf)。这种核心类库由于忽略了一些描述符及反射,要比全类库小得多。这种模式经常在移动手机平台应用多一些。编译器采用该模式产生的方法实现与SPEED模式不相上下,产生的类通过实现MessageLite接口,但它仅仅是Messager接口的一个子集。
参考并致谢
1.protobuf协议语言指南 - http://blog.csdn.net/zhaozheng7758/article/details/6749047
posted @ 2010-12-30 22:42  酱油和醋  阅读(620)  评论(0编辑  收藏  举报