码迷,mamicode.com
首页 > 其他好文 > 详细

Google protobuf解析消息逻辑的版本问题

时间:2018-05-29 11:57:50      阅读:492      评论:0      收藏:0      [点我收藏+]

标签:有一个   过程   ati   逻辑   序列   lin   info   tle   mes   

    在分析caffe2源码的过程中,由于caffe2使用protobuf作为网络结构和网络参数序列化和反序列化的机制,想在反序列化之前进行加解密处理,这是反向protouf其实有两个版本的实现来进行消息的解析。

    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的实现,所有会发现效率更高。

技术分享图片

Google protobuf解析消息逻辑的版本问题

标签:有一个   过程   ati   逻辑   序列   lin   info   tle   mes   

原文地址:https://www.cnblogs.com/justinzhang/p/9104165.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!