Protobuf配置
google 开源的Protobuf,目的是解决json和xml在网络传输中占用带宽问题,它是二进制传输的,无论是解析性能还是占用网络带宽,都要比json和xml优越。
但是,为什么protobuf没有取代json或者xml呢?觉得主要原因是protobuf 是二进制的,对调试不友好,出现问题,不好定位,所以很多公司不使用它。
protobuf除了用作网络传输,还有另一个用途,就是用作配置文件。json也可以用作配置文件,但是json是明文,有些敏感信息容易泄露。protobuf的二进制可以派上用途,还可以把敏感信息隐藏,还有就是protobuf文件比较小。protobuf扩展性也是比较好的,可以在不影响原有字段的情况增加新的字段。
protobuf支持多种语言,我们在设备端使用,只用c++即可,其它语言可以不要,这样编译快一点。从github下载代码,解压,cd 到解压目录,执行.
/autogen.sh , make 就可以了,然后到home目录下,修改 .profile, 把PATH路径指向
protoc 所在目录,这样执行protoc 命令,直接从命令行输入即可。
protoc 编译好后,就可以用它来生成c++协议文件。首先定义好后缀为.proto文件,这个就是自己定义的协议,增加相应的字段就可以了,每个字段必须写上序号,如果是数组,就用 repeat声明。协议定义很简单的。
协议定义好后,protoc --cpp_out=. my.proto生成c++实现文件,因为我们只要c++,所以只加了cpp_out参数,如果需要生成其它语言,增加相应的语言参数即可,生成实现文件后,就可以放到工程上用了,工作效率还是挺高的,不用自己写代码,就可以用作配置功能了。
protobuf可以直接从文件中解析数据,也可以从内存解析,网络上传输的数据,就用内存解析,我们在本地当配置文件使用,从文件解析即可。从项目使用效果来看,protobuf达到了我们的要求,性能,占用空间和扩展性都是不错的。
Protobuf配置相关推荐
- [Protobuf] Mac系统下安装配置及简单使用
Mac下Protobuf安装 Protobuf源码Github地址: https://github.com/google/protobuf 配置环境教程: https://github.com/goo ...
- Caffe-SSD(single-shot-multibox)在Windows平台下的配置(CPU和GPU)与训练记录
1在windows上面训练和测试ssd的方法很少,而且配置也相当之麻烦,搞了几天才调试成功.现在写一下过程分享到博客上,顺便也可以作为今后再次安装的参考.我的配置环境: windows: 10 gp ...
- Unity C# 网络学习(十二)——Protobuf生成协议
Unity C# 网络学习(十二)--Protobuf生成协议 一.安装 去Protobuf官网下载对应操作系统的protoc,用于将.proto文件生成对应语言的协议语言文件 由于我使用的是C#所以 ...
- 【全网最全】Gem5 配置 DRAMSim2 DRAMSim3
分享下自己的踩坑经验,希望能帮大家避免耗费太多配置环境的无效时间 专门针对dramsim而安装的gem5版本,如果针对其他版本,本文可能无法提供太多帮助 安装时需要注意的坑主要两个:1. GEM5版本 ...
- TensorFlow领衔,七大深度学习框架大对比!
作者|黄文坚 唐源 编辑|小智 TensorFlow 在 2015 年年底一出现就受到了极大的关注,在一个月内获得了 GitHub上超过一万颗星的关注,目前在所有的机器学习.深度学习项目中排名第一,甚 ...
- DL-5 深度学习框架的对比
在深度学习领域的五大巨头里,它们都各自力挺一种深度学习框架:像谷歌有自家的TensorFlow.Facebook有Torch.百度有Paddle Paddle.微软有CNTK.而亚马逊的AWS则有MX ...
- Linux(Ubuntu14.04)下安装Anaconda和Spyder
Linux(Ubuntu14.04)下安装Anaconda是为了安装python所需要的各种库以及他们的环境配置. Spyder是使用python的IDE 安装python和pip 一般linux系统 ...
- 安装Google Object Detection API
前提条件 已安装python,建议采用VirtualEnv或者Anaconda 安装TensorFlow 1.x python和tensorflow的安装见相关文档 https://www.tenso ...
- 各种流行深度学习构架的性能对比
知乎上对各种深度学习方法的对比: 在众多的神经网络框架如chainer, caffe, torch,mxnet等之间如何做选择? 四个月前就有人提出更新对比,现在我看还没有对比更新过. Evaluat ...
最新文章
- 百度某员工抱怨:前人代码写得像坨*,颠覆了对大厂的认知
- mysql5 数据类型,Mysql学习笔记5-----字段的数据类型
- phpMyAdmin操作之改管理员密码
- java类型转换_JAVA类型转换大全
- TCP/IP / PDU 是什么
- nginx丢弃http包体处理
- Nginx深入详解之过滤模块
- java 多态_Java 多态
- cron计划任务的介绍
- python列表求平均值_长篇文讲解:Python要求O(n)复杂度求无序列表中第K的大元素实例...
- 华为云计算机访问手机软件,华为云电脑来了,只需一个APP就能让手机秒变Windows电脑!...
- CISCO 命令手册
- smb服务器速度测试_360路由器做smb服务器各种情况拷贝速度测试外加加装5g网卡...
- PowerDesigner中主键外键唯一键设置
- 小程序源码:微信零钱模拟器
- 计算机网络密码忘记了怎么办,忘记电脑密码怎么办?--重置电脑密码的方法详解...
- 【JAVA】java递归测试考拉兹猜想/冰雹猜想
- i 标签怎么关闭_中山不干胶标签生产厂家——飞盛条码标识技术
- CDQ分治——学习笔记
- 日语标点符号用法解说!
热门文章
- 运用Java将图片保存到本地
- Android自定义Behavior第十六式之空中楼阁
- 中国计算机软件专业技术,中国计算机软件专业技术资格考试-20210325012847.doc-原创力文档...
- Java(斗地主案例)
- SVM中函数间隔和几何间隔的区别
- C语言 system函数超简单讲解+整活
- 向微积分手机版授课老师说句真心话
- tensorflow linux多卡训练_用 Windows 电脑训练深度学习模型?超详细配置教程来了...
- 简谈docker swarm中负载均衡原理
- Koa2调用java接口_入门koa2接口开发