赞
踩
在这⾥让我们分别使⽤PB与JSON的序列化与反序列化能⼒,对值完全相同的⼀份结构化数据进⾏不同次数的性能测试。
测试结果如下:
这里几组测试的序列大小是一个对象序列化后的大小
100次 [pb序列化]耗时:0.342ms. 序列化后的⼤⼩:278 100次 [pb反序列化]耗时:0.435ms. 100次 [json序列化]耗时:1.306ms. 序列化后的⼤⼩:567 100次 [json反序列化]耗时:0.926ms. 1000次 [pb序列化]耗时:3.59ms. 序列化后的⼤⼩:278 1000次 [pb反序列化]耗时:5.069ms. 1000次 [json序列化]耗时:11.582ms. 序列化后的⼤⼩:567 1000次 [json反序列化]耗时:9.289ms. 10000次 [pb序列化]耗时:34.386ms. 序列化后的⼤⼩:278 10000次 [pb反序列化]耗时:45.96ms. 10000次 [json序列化]耗时:115.76ms. 序列化后的⼤⼩:567 10000次 [json反序列化]耗时:91.046ms. 100000次 [pb序列化]耗时:349.937ms. 序列化后的⼤⼩:278 100000次 [pb反序列化]耗时:428.366ms. 100000次 [json序列化]耗时:1150.54ms. 序列化后的⼤⼩:567 100000次 [json反序列化]耗时:904.58ms.
由实验结果可得:
序列化协议 | 通⽤性 | 格式 | 可读性 | 序列化⼤⼩ | 序列化性能 | 适⽤场景 |
---|---|---|---|---|---|---|
JSON | 通⽤(json、xml已成为多种⾏业标准的编写⼯具) | ⽂本格式 | 好 | 轻量(使⽤键值对⽅式,压缩了⼀定的数据空间) | 中 | web项⽬。因为浏览器对于json数据⽀持⾮常好,有很多内建的函数⽀持. |
XML | 通⽤ | ⽂本格式 | 好 | 重量(数据冗余,因为需要成对的闭合标签) | 低 | XML作为⼀种扩展标记语⾔,衍⽣出了HTML、RDF/RDFS,它强调数据结构化的能⼒和可读性。 |
ProtoBuf | 独⽴(Protobuf只是Google公司内部的⼯具) | ⼆进制格式 | 差 | (只能反序列化后得到真正可读的数据)轻量(⽐JSON更轻量,传输起来带宽和速度会有优化) | ⾼ | 适合⾼性能,对响应速度有要求的数据传输场景。Protobuf⽐XML、JSON更⼩、更快。 |
⼩结:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。