Google protobuf解析消息邏輯的版本問題

    在分析caffe2源碼的過程當中,因爲caffe2使用protobuf做爲網絡結構和網絡參數序列化和反序列化的機制,想在反序列化以前進行加解密處理,這是反向protouf其實有兩個版本的實現來進行消息的解析。 python

    protobuf 中對消息的解析有兩個版本,一個是python版本,另一個是c++版本。python版本相關的代碼存放路徑在:./python/google/protobuf/internal/python_message.py 中,而c++實現版本存放路徑在:./python/google/protobuf/pyext/message.cc ,在python目錄下有一個setup.py文件,裏面有一個--cpp_implemetation選項,這個選項能夠控制使用cpp的實現仍是使用python的實現來進行消息的解析(序列化和反序列化),默認這個選項是關閉的,因此若是從源代碼安裝protobuf,那麼就會默認使用python的實現來進行消息的解析,這時會發現解析的性能變慢。若是用pip安裝的protobuf來進行消息的解析,默認採用的是cpp的實現,全部會發現效率更高。 c++

clipboard

相關文章
相關標籤/搜索