FlatBuffers去年发布,最近看了一下,与同是出自Google之手的Protocol Buffers非常类似。在官网上介绍,FlatBuffers(简称FB)主要针对game development和对性能有要求的应用。相对于Protocol Buffers(简称PB),FB不需要解析,只通过序列化后的二进制buffer即可完成数据访问。
FB的主要特点有:
1)数据访问不需要解析
将数据序列化成二进制buffer,之后的数据访问直接读取这个buffer,所以读取的效率很高。
2)内存高效、速度快
- 数据访问只在序列化后的二进制buffer,不需额外的内存分配。
- 数据访问速度接近原生的struct,只多了一次解引用(根据起始地址和偏移量,然后取值)
3)弹性
都是可选字段,支持向前、向后兼容
4)生成的代码量小
只需依赖一个头文件
5)强类型
编译时检测错误
6)易于使用
可以解析schema和json文本
7&