日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Windows 10 搭建Python3 安装使用 protobuf

發布時間:2025/3/11 windows 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows 10 搭建Python3 安装使用 protobuf 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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?640273787118843237596
    bytes97311?664?824374283495

    準備環境:

    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,寫入代碼

    import test2_pb2testinfo = test2_pb2.testinfo() testinfo.devtype = 100 testinfo.devid = 2 testinfo.unitid = 3 testinfo.chlid = 4 testinfo.testid = 250 testinfo.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代碼,得到以下結果,證明實驗成功!

    ?

    posted @ 2019-02-20 17:10 luyanjie 閱讀(...) 評論(...) 編輯 收藏 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的Windows 10 搭建Python3 安装使用 protobuf的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。