2017-03-27 140 views

回答

4

协议缓冲区针对线路上的空间消耗进行了优化,因此对于存档和存储而言,它们非常高效。但是,复杂的编码代价很高,因此它们的计算量很大,并且C++ API大量使用动态分配。另一方面,扁平缓冲器针对高效解析和内存中表示进行了优化(例如,在某些情况下提供数据的零拷贝视图)。

这取决于你的用例,哪些方面对你更重要。

0

flatbuffer页面引用:

为什么不使用协议缓冲区,或..?

协议缓冲器确实比较类似FlatBuffers,与 主要差别在于FlatBuffers不需要解析/ 拆包步骤到次级表示,然后才能访问 数据,常常与每个对象的存储器分配。该代码也是一个 数量级更大。协议缓冲区既没有可选的 文本导入/导出,也没有联盟等模式语言功能。