协议缓冲区和平面缓冲区之间有什么区别?


Answers:


126

我在这里写了一些序列化系统的详细比较,包括Protobufs和FlatBuffers:

https://kentonv.github.io/capnproto/news/2014-06-17-capnproto-flatbuffers-sbe.html

但是,比较主要集中在比较三个新的“零复制”序列化系统,并且主要将Protobufs作为参考点。另外,我还是Cap'n Proto的作者,还是Protobufs v2的作者(我曾在Google负责Protobufs的开源采购),因此比较可能会有偏差。

请注意,Protobufs已在Google自己的所有服务中使用,而FlatBuffers只是一个实验性项目,据我了解,它尚未在内部广泛采用。


嗨,瓦尔达先生,非常感谢您的评论!感谢这些非常有用的开源工具!作为普通用户,我Protocol Buffers在项目中使用了很棒的工具。在检查了关于FlatBuffers和项目的新闻之后Github,我发现它如您所说是实验性的,并且不是很热门,因此我还搜索了PB和之间的性能比较,FB并发布了此问题。谢谢您的比较!那意义重大!我完全同意benchmark您的帖子中的内容the relative performance of these libraries depends deeply on the use case
开采

8
它可能没有被广泛采用,但是基准看起来还不错。开源游戏库cocos2d-x现在已成功使用它。我认为Flatbuffer已通过实验阶段
user18853'1

3
@KentonVarda,自2014年6月以来,是否有任何新更新可与FlatBuffers进行比较?
TJR

@TJR:我没有跟上。一堆可能已更改。如果有人通知我应该更新什么内容,我很乐意将所有更新内容都包含在内。
肯顿·瓦尔达

11
根据这篇文章,Flatbuffers被Facebook在其Android应用程序中使用。
Alex Che
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.