Protobuf一定比Json好吗?
Proto会好些
- 如果你需要提高安全,协议非明文。
- 如果你需要提高编解码速度。
- 跨平台的RPC数据传输。
Json会好些
- 如果前端是js交互
- 调试环境比较复杂
数据大小方面
如果是为了节省流量,不要轻易的切换成protobuf,因为protobuf gzip压缩后可能会比json gzip压缩后的数据还要大。
Protobuf的实测数据
关于存储
存储方面,proto本身是比json要小,但是经过gzip压缩后就未可知了。这取决与json本身value的大小占比。具体数据如下(以下是大value的场景):
Tables | gzip压缩前 | gzip压缩后 |
---|---|---|
json | 2834 | 396 |
protobuffers | 1248 | 458 |
关于性能
性能方面(编解码)是有明显的提升,具体参考 [ benchmark ]