重庆网站备案需要几天,网站上的定位功能如何实现的,网站产品推广,wordpress3.5.1zhcnWindows 10 搭建Python3 安装使用 protobuf Protobuf对比XML、Json等其他序列化的优势 protobuf 不管是处理时间上#xff0c;还是空间占用上都优于现有的其他序列化方式。内存暂用是java 序列化的1/9#xff0c;时间也是差了一个数量级#xff0c;一次操作在1us左右。缺点… Windows 10 搭建Python3 安装使用 protobuf Protobuf对比XML、Json等其他序列化的优势 protobuf 不管是处理时间上还是空间占用上都优于现有的其他序列化方式。内存暂用是java 序列化的1/9时间也是差了一个数量级一次操作在1us左右。缺点就是对象结构体有限制只适合于内部系统使用。json格式在空间占用还是有一些优势是java序列化的1/2.6。序列化和反序列化处理时间上差不多也就在5us。当然这次使用的jackson如果使用普通的jsonlib可能没有这样好的性能jsonlib估计跟java序列化差不多。xml相比于java序列化来说空间占用上有点优势但不明显。处理时间上比java序列化多了一个数量级在100us左右。以前一种的java序列化表现得有些失望hessian测试有点意外具体序列化数据上还步入json。性能上也不如jackjson输得比较彻底。hessian使用压缩虽然在字节上有20%以上的空间提升但性能上差了4,5倍典型的以时间换空间。总的来说还是google protobuf比较给力 protobufjacksonxstreamSerializablehessian2hessian2压缩hessian1序列化(单位ns)11545421 92406 101892679410076629027反序列化(单位ns)13348743 117329 640273787118843237596bytes97311 664 824374283495准备环境 1Python版本3.5.4 2Protobuf版本3.7.0 3Protobuf安装包protoc-3.7.0-rc1-win64.zip 4Win10 64位系统 步骤 【下载protoc】 https://github.com/google/protobuf/releases 根据自己的平台下载对应的编译器我的是win10-64位所以下载 protoc-3.7.0-rc1-win64.zip 设置环境变量这一步使你在本地任何地方使用protoc这个指令 右击“此电脑”。。。 测试protoc: 新打开一个命令行输入protoc --version如果将输出版本号说明protoc安装好了 【编写.proto协议文件】 新建一个protobuf文件夹手动创建test2.proto文件 并在test2.proto中输入 syntax proto2;
message testinfo
{
required int32 devtype 1;
required int32 devid 2;
required int32 unitid 3;
required int32 chlid 4;
optional int32 testid 5 [default 0];
required bytes stepdata 6;
} 【编译】 打开命令行切换到protobuf文件夹下下面执行protoc --python_out./ test2.proto 然后会生成一个python文件 在目录下新建文件 test.py写入代码 import test2_pb2testinfo test2_pb2.testinfo()
testinfo.devtype 100
testinfo.devid 2
testinfo.unitid 3
testinfo.chlid 4
testinfo.testid 250
testinfo.stepdata babdprint(testinfo, testinfo.devtype) # 打印 protobuf 结构的内容
out testinfo.SerializeToString()
print(out) # 打印 Protobuf 序列字符串decode test2_pb2.testinfo()
decode.ParseFromString(out) print(decode) # 打印 解析Protobuf后的内容 运行python代码得到以下结果证明实验成功 posted 2019-02-20 17:10 luyanjie 阅读(...) 评论(...) 编辑 收藏