美文网首页
protobuf优缺点

protobuf优缺点

作者: SinX竟然被占用了 | 来源:发表于2017-09-12 22:27 被阅读0次

    protobuf的描述

    首先 protobuf是一个开源项目,是goole内部久经考验的一个东西。主要用于结构化数据串行化的灵活、高效、自动的方法,有如XML,不过他更小,更快,也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。甚至可以在无需重新部署程序的情况下更新数据结构。


    protobuf的优点

    1、性能好/效率高

    时间开销: XML格式化(序列化)的开销还好;但是XML解析(反序列化)的开销就不敢恭维了。 但是protobuf在这个方面就进行了优化。可以使序列化和反序列化的时间开销都减短。
    空间开销:protobuf也减少了很多。

    2、有代码生成机制

    比如你你写个一下类似结构体的内容

    message testA  
    {  
        required int32 m_testA = 1;  
    } 
    

    像写一个这样的结构,protobuf可以自动生成它的.h 文件和点.cpp文件或者java类文件。 他将对结构体testA的操作封装成一个类。

    3、支持向后兼容和向前兼容

    当客户端和服务器同时使用一块协议的时候, 当客户端在协议中增加一个字节,并不会影响客户端的使用

    4、支持多种编程语言

    在Google官方发布的源代码中包含了c++、java、Python三种语言。


    protobuf的缺陷

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

    为了提高性能,protobuf采用了二进制格式进行编码。这直接导致了可读性差。

    2、缺乏自描述

    一般来说,XML是自描述的,而protobuf格式则不是。 给你一段二进制格式的协议内容,不配合你写的.proto文件是看不出来是什么作用的。

    相关文章

      网友评论

          本文标题:protobuf优缺点

          本文链接:https://www.haomeiwen.com/subject/ogphsxtx.html