序列化类型
JSON Protobuf XML
比较
JSON 缺点
- 头一个缺点是非字符串的编码低效。比如 int 字段的值是 12345,内存表示只占两个字节,转成 JSON 却要五个字节。 bool 字段则占了四或五个字节。
- 再一个缺点就是信息冗余,序列化编码时直接加上字段名。同一个接口同一个对像,只是 int 字段的值不同,每次都还要传输”int”这个字段名。
- 存储格式是文本格式,占用空间大,要转换成二进制才能进行网络传输(相比之下Protobuf存储格式是二进制可以直接传输)
Protobuf 缺点
- 序列化编码和反序列化解码的代码必须持有一份字段名和 tag 的映射关系
- Protobuf文件是二进制可读性差,会给代码调试带来困难
- Protobuf支持维护成本高,后期修改内容类型会带来大量改动,主要是因为Protobuf内容和生成的代码高度相关