protocol buffer 实现高性能通讯
来源:互联网 发布:近期的网络大事件 编辑:程序博客网 时间:2024/05/22 00:20
1、把附件中的protoc.exe文件复制到 c:\windows 目录中(呵呵,这样最省事),window7放在windows/system32下
2、解压protobuf-2.4.1.zip文件,并重命名为proto_home(这步可以省,为了方便),我放到了E盘的根目录下。
3、安装mvn:
3.1) Maven有一个重要的文件"settings.xml“,这个文件来源于apache-maven-2.0.8/conf/ 下,修改<localRepository>E:/work</localRepository>(中间的指向为work的位置,也就是jar包库的位置)
3.2) 设置Maven的环境变量,基本上和设置Jdk环境变量相似。
首先设置MAVEN_HOME:C:\apache-maven-2.0.8(下载的mvn我放到了c盘根目录下)
再加入Path:%MAVEN_HOME%\bin;
3.3)验证是否安装成功:打开命令行窗口,运行命令 mvn -version。
4、在编译之前还需把 protocol buffer 的编译器复制一份到目录 proto_home\src\ 中,由于在 maven 脚本中调用了这个文件。下面在命令行窗口中把当前工作目录定位到proto_home\java 中,运行命令 mvn package。编译完成后会在 taget 目录中生成一个 jar 文件 protobuf-java-2.4.1.jar。
5、使用 protocol buffer 编译器编译 addressbook.proto 文件。打开命令行窗口,并定位到 proto_home\examples 目录中,运行命令 protoc --java_out=. addressbook.proto(注意.后面有空格,否则会有错误),执行这个命令后会在当前目录下生成一个java类 com.example.tutorial.AddressBookProtos.java。
属性详解:
option java_package = “com.example.foo”;
我认为比较重要的文件级选项有
java_package ——指定生成的java代码的packge。
java_outer_classname ——protoc会为每个.proto文件一个java类,其中每个message都做作为该java类的内部类,这个选项就用于指定外围类的类名。
optimize_for ——用于优化protoc产生的代码,有三种模式:
SPEED –产生的代码将具有最好的序列化/反序列化执行速度。
CODE_SIZE –产生的代码将具有更少的代码行数。
LITE_RUNTIME –protocol buffer有一个简化版的runtime库,比如要生成用于手机平台的代码,可以使用这个选项。
另外,packed是一个字段级选项,在上面字段修改符repeated中提到了。
分析:
个人认为pb之所以快和省流量除了本省字节少以外,序列化过程减少的字节数是主要因素
具体可参考http://kangsg219.iteye.com/blog/904762
其他参考:http://www.searchtb.com/2010/11/protocol-buffers%E7%9A%84%E5%BA%94%E7%94%A8%E4%B8%8E%E5%88%86%E6%9E%90.html
在实践中具体选择什么还需要依情况而定:
http://www.oschina.net/question/12_10307
待续.
2、解压protobuf-2.4.1.zip文件,并重命名为proto_home(这步可以省,为了方便),我放到了E盘的根目录下。
3、安装mvn:
3.1) Maven有一个重要的文件"settings.xml“,这个文件来源于apache-maven-2.0.8/conf/ 下,修改<localRepository>E:/work</localRepository>(中间的指向为work的位置,也就是jar包库的位置)
3.2) 设置Maven的环境变量,基本上和设置Jdk环境变量相似。
首先设置MAVEN_HOME:C:\apache-maven-2.0.8(下载的mvn我放到了c盘根目录下)
再加入Path:%MAVEN_HOME%\bin;
3.3)验证是否安装成功:打开命令行窗口,运行命令 mvn -version。
4、在编译之前还需把 protocol buffer 的编译器复制一份到目录 proto_home\src\ 中,由于在 maven 脚本中调用了这个文件。下面在命令行窗口中把当前工作目录定位到proto_home\java 中,运行命令 mvn package。编译完成后会在 taget 目录中生成一个 jar 文件 protobuf-java-2.4.1.jar。
5、使用 protocol buffer 编译器编译 addressbook.proto 文件。打开命令行窗口,并定位到 proto_home\examples 目录中,运行命令 protoc --java_out=. addressbook.proto(注意.后面有空格,否则会有错误),执行这个命令后会在当前目录下生成一个java类 com.example.tutorial.AddressBookProtos.java。
属性详解:
option java_package = “com.example.foo”;
我认为比较重要的文件级选项有
java_package ——指定生成的java代码的packge。
java_outer_classname ——protoc会为每个.proto文件一个java类,其中每个message都做作为该java类的内部类,这个选项就用于指定外围类的类名。
optimize_for ——用于优化protoc产生的代码,有三种模式:
SPEED –产生的代码将具有最好的序列化/反序列化执行速度。
CODE_SIZE –产生的代码将具有更少的代码行数。
LITE_RUNTIME –protocol buffer有一个简化版的runtime库,比如要生成用于手机平台的代码,可以使用这个选项。
另外,packed是一个字段级选项,在上面字段修改符repeated中提到了。
分析:
个人认为pb之所以快和省流量除了本省字节少以外,序列化过程减少的字节数是主要因素
具体可参考http://kangsg219.iteye.com/blog/904762
其他参考:http://www.searchtb.com/2010/11/protocol-buffers%E7%9A%84%E5%BA%94%E7%94%A8%E4%B8%8E%E5%88%86%E6%9E%90.html
在实践中具体选择什么还需要依情况而定:
http://www.oschina.net/question/12_10307
待续.
0 0
- protocol buffer 实现高性能通讯
- rotocol buffer 实现高性能通讯
- 手机端实现Protocol Buffer
- 手机端实现Protocol Buffer
- 手机端实现Protocol Buffer
- 一个基于protocol buffer的RPC实现
- protocol buffer 测试类的实现
- protocol buffer
- protocol buffer
- Protocol Buffer
- protocol Buffer
- protocol buffer
- Protocol Buffer
- Protocol Buffer
- Protocol Buffer
- Protocol Buffer
- Protocol Buffer
- Protocol Buffer
- 谷歌、微软争相布局 科技巨头抢滩物联网
- 大数据库技术在與情分析领域的应用
- 为何%Processor Time (Process _Total)值能超出100%?
- JAVA设计模式 值得认真看看的系列文章
- GPS定位
- protocol buffer 实现高性能通讯
- ARCGIS 安装报错: run-time error 429 activex component can't create object
- 如何使用 Visual C# .NET 创建用于窗体身份验证的密钥
- CUGB图论专场2:F - PIGS 需要调整的网络流
- Quartz 任务调度机制笔记——01
- Scrapy——可配置的爬虫
- 图(1)--图的相关术语与图的存储结构
- SDL Game Development-第2章-2.剪裁式显示BMP
- unity web player full 完整版unitywebplayer播放器下载址