python374安装windows10_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比较给力

protobuf

jackson

xstream

Serializable

hessian2

hessian2压缩

hessian1

序列化(单位ns)

1154

5421

92406

10189

26794

100766

29027

反序列化(单位ns)

1334

8743

117329

64027

37871

188432

37596

bytes

97

311

664

824

374

283

495

准备环境:

1,Python版本3.5.4

2,Protobuf版本3.7.0

3,Protobuf安装包:protoc-3.7.0-rc1-win64.zip

4,Win10 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,写入代码

importtest2_pb2

testinfo=test2_pb2.testinfo()

testinfo.devtype= 100testinfo.devid= 2testinfo.unitid= 3testinfo.chlid= 4testinfo.testid= 250testinfo.stepdata= b'abd'

print(testinfo, testinfo.devtype) # 打印 protobuf 结构的内容

out=testinfo.SerializeToString()print(out) # 打印 Protobuf 序列字符串

decode=test2_pb2.testinfo()

decode.ParseFromString(out)print(decode) # 打印 解析Protobuf后的内容

运行python代码,得到以下结果,证明实验成功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值