protobuf的优势

      最后更新:2022-02-18 12:35:48 手机定位技术交流文章

      什么是protobuf
      protobuf(Google Protocol Buffers)
      Google提供一个具有高效的协议数据交换格式工具库(类似Json)。
      但相比于Json,Protobuf有更高的转化效率,时间效率和空间效率都是JSON的3-5倍。

      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,通用性还是没那么好。
      ————————————————
      版权声明:本文为CSDN博主「牛奔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
      原文链接:https://blog.csdn.net/Guzarish/article/details/118626774

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/18580.html

          热门文章

          文章分类