现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

Protobuf的优缺点及用途

2019-06-03 10:47 工业·编程 ⁄ 共 612字 ⁄ 字号 暂无评论

protoBuf是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现:java、c#、c++、go 和 python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。与Protoful类似的序列化技术还有XML、JSON、Thrift等。

优点

与同类型的数据交换格式相比(诸如json,xml),由于protobuf是基于二进制数据传输格式,因此它具有高效的解析速度和更小的体积,并且由于它是直接基于.proto文件生成对应语言的数据结构,因此它的转换过程更加简单直接。同时因为protobuf实现都包含了相应语言的编译器以及库文件,它将比传统的基于一套规范解析更加精准可控,误解的概率更低。

综上优点 :

高效的解析速度

小巧的传输体积

直接上手,简单易用

解析可控,误解率低

缺点

与传统的数据交换格式相比,由于基于二进制数据传输格式,protobuf可读性为零。同时虽然protobuf强调的是跨平台性,但相较于json,xml来说,protobuf的语言覆盖率偏低,并且手动开发一个自定义protobuf的工作量也偏大。

综上缺点 :

可读性低

语言支持相对少

用途

作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于分布式应用之间的数据通信或者异构环境,并且在传统的cs架构的环境中,protobuf也可以用作客户端服务端公用的数据交换格式。

给我留言

留言无头像?