码迷,mamicode.com
首页 > Web开发 > 详细

protobuf json xml比较

时间:2018-06-04 00:54:12      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:解析   col   developer   bsp   参考   http   带来   message   序列化   

1 protobuf/xml/json对比

从数据的存储格式的角度进行对比

假如要存储一个键值对:

{price:150}

1.1 protobuf的表示方式

message  Test {

    optional int32 price = 1;

}

protobuf的物理存储:08 96 01,就3个字节。

采用key-value的方式存放,第一个字节是key,它是field_number << 3 | wire_type构成。

所以field number是1,wire type是0,即varint,有了这个wire type就可以用来解析96 01了。

96 01 = 1001 0110 0000 0001

即001 0110 000 0001

least significant first

1001 0110 = 128 + 16 + 4 + 2 = 150.

只要3 bytes

1.2 xml的存储表示

<some>

  <name>price</name>

  <value>150</value>

</some>

大约要36 bytes

1.3 json的存储表示

{price:150}

大约11bytes

 

比较可见相比于json和xml,protobuf对象序列化时可以节省非常大的空间,从而带来非常快的传输速度。

另外由于protobuf表示简单,解析速度也更快。

 

参考

1 https://developers.google.com/protocol-buffers/docs/encoding

 

protobuf json xml比较

标签:解析   col   developer   bsp   参考   http   带来   message   序列化   

原文地址:https://www.cnblogs.com/hustdc/p/9131322.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!