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

转载于:https://www.cnblogs.com/justinzhang/p/9104165.html

Google protobuf解析消息逻辑的版本问题相关推荐

  1. Unity2017使用Google.Protobuf.dll(.NET3.5版本)

    官方Protobuf的C#实现要求.Net4.6及以上,Unity2017有NET3.5和.NET4.6两种版本. 如果编译Google.Protobuf.dll时选择的.Net版本过高,一般多数为. ...

  2. 一种自动反射消息类型的 Google Protobuf 网络传输方案

    陈硕 (giantchen_AT_gmail) Blog.csdn.net/Solstice  t.sina.com.cn/giantchen 这篇文章要解决的问题是:在接收到 protobuf 数据 ...

  3. Google Protobuf 实践使用开发

    Android 敏捷开发助手 Lottie动画 轻松使用 PNG.JPG等普通图片高保真转SVG图 Android 完美的蒙层方案 Android MMKV框架引入使用 强大无匹的自定义下拉列表 Go ...

  4. google ProtoBuf开发者指南

    目录 1   概览 1.1   什么是protocol buffer 1.2   他们如何工作 1.3   为什么不用XML? 1.4   听起来像是为我的解决方案,如何开始? 1.5   一点历史 ...

  5. 使用CSharp编写Google Protobuf插件

    什么是 Google Protocol Buffer? Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 ...

  6. Google Protobuf 使用介绍

    直接在 www.google.com.hk 上搜索google protobuf 后下载官方版本. 官方版本支持C++\Java\Python三门语言. 还有很多非官方的语言版本支持,如C\NET(C ...

  7. C++|Java工作笔记-google protobuf基本使用

    目录 前言 protoc生成 Java相关 C++相关 前言 这里主要是生成序列号,在我所做的项目中,一般是把数据序列化后扔到消息总线上,消费者读取了,自行解析. 个人感觉这种方式比Json和XML都 ...

  8. google protobuf使用

    google protobuf使用 下载的是github上的:https://github.com/google/protobuf If you get the source from github, ...

  9. Google Protobuf

    Google Protobuf 编码和解码的基本介绍 Netty 本身的编码解码的机制和问题分析 Protobuf Protobuf 快速入门实例 pom.xml Student.proto Nett ...

最新文章

  1. 【数据结构】支持四则混合运算的计算器(转)
  2. MATLAB的左除\和右除/ ??? 自己没有完全明白
  3. eWebEditor不支持IE8的解决方法
  4. dreamstart的催促
  5. idea设置默认maven路径(2020版idea)
  6. python 好书推荐_关于Python的好书推荐(三)
  7. Java EE 7的高峰–使用EclipseLink的多租户示例
  8. 使用Golang实现的快速排序
  9. c语言坐标打印佛祖,C语言输入平面上两个点的坐标(double类型),计算两个点之间的距离。看”详细“里哪里写错了谢谢...
  10. Windows Phone 7 开发探索笔记1——触控操作之Touch
  11. VBoxGuestAdditions.iso无法在virtualbox中正确安装
  12. kuangbin专题-最短路练习
  13. ibatis iterator list 参数 查询
  14. java xss漏洞修复_全局存储型XSS漏洞修复
  15. springboot整合容联云发短信验证码
  16. 通过echarts绘制双十一销量实时统计图表
  17. Java简单实现猜拳游戏
  18. 二代旅游CMS网站管理系统使用手册(二)--目的地管理
  19. 如何在当前文件夹打开命令行窗口
  20. 软件著作权的好处有哪些?软著含金量高吗?

热门文章

  1. 仓鼠体重年龄对照表_各年龄段血糖,血压,血脂,尿酸对照表,内容太值!
  2. 如何设置多个图层层叠关系_凉山车载式叠螺污泥脱水机_山东领旗环保科技
  3. linux卸载桌面Ubuntu,Ubuntu安装卸载KDE桌面之折腾记
  4. 在text html模版中写js,如何利用模板将HTML从JavaScript中抽离
  5. windows下安装redis以及一些常规操作
  6. Java面试题整理,连续四年百度Java岗必问面试题
  7. “重金求来”Alibaba技术官并发编程笔记,附Java面经
  8. python【数据结构与算法】六度空间
  9. Python程序设计题解【蓝桥杯官网题库】 DAY6-基础练习
  10. ftp服务器文件备份,数据备份是十分重要的,下面是通过ftp将本机数据备份到远程服务器的一个例子...