乐趣区

关于protobuf:protobuf优缺点

protobuf 长处

protobuf 的长处:

1、性能好 / 效率高

工夫开销:XML 格式化(序列化)的开销还好;然而 XML 解析(反序列化)的开销就不敢恭维了。然而 protobuf 在这个方面就进行了优化。能够使序列化和反序列化的工夫开销都减短。

空间开销:也缩小了很多

2、有代码生成机制

比方你你写个一下相似构造体的内容

 message testA  
{required int32 m_testA = 1;} 

像写一个这样的构造,protobuf 能够主动生成它的.h 文件和点.cpp 文件。
protobuf 将对构造体 testA 的操作封装成一个类。

3、反对向后兼容和向前兼容

当客户端和服务器共事应用一块协定的时候,当客户端在协定中减少一个字节,并不会影响客户端的应用

4、反对多种编程语言

在 Google 官网公布的源代码中蕴含了 c ++、java、Python 三种语言

protobuf 毛病

1、二进制格局导致可读性差

为了进步性能,protobuf 采纳了二进制格局进行编码。这间接导致了可读性差。这个间接影响开发测试时候的效率。当然,个别状况下,protobuf 十分牢靠,并不会呈现太大的问题。

2、不足自描述

一般来说,XML 是自描述的,而 protobuf 格局则不是。给你一段二进制格局的协定内容,不配合你写的构造体是看不出来什么作用的。

3、通用性差

protobuf 尽管反对了大量语言的序列化和反序列化,但依然并不是一个跨平台和语言的传输规范。在多平台消息传递中,对其余我的项目的兼容性并不是很好,须要做相应的适配革新工作。相比 json 和 XML,通用性还是没那么好。

退出移动版