协议缓冲区 - 用例
Posted
技术标签:
【中文标题】协议缓冲区 - 用例【英文标题】:Protocol buffer - usecases 【发布时间】:2013-04-08 13:52:09 【问题描述】:我尝试阅读 Protobuf 文档,但无法想象它可以用于许多用例。我想知道一些实际的协议缓冲区性能改进用例。 谢谢
【问题讨论】:
【参考方案1】:Protocol buffers 是一个序列化库,所以答案基本上与问题相同:
我什么时候想要序列化/反序列化数据?
这可能是涉及持久性(磁盘、数据库中的 blob 等)、传输(套接字、文件等)或简单的内存存储(快照、备忘录、深度克隆)的任何场景。 protobuf 具有版本容错性和跨平台特性,这意味着它既可以用于同构设置,也可以用于异构设置——事实上,其他各种序列化格式也可以。简洁(小),当带宽非常宝贵(在繁忙的系统上“总是”)时,它可能特别有用,并且作为二进制(而不是文本)协议,它的处理成本明显更低 - 这对于减少 CPU 非常有用高架。除此之外:这是一个开放式问题,仅受您的想象力限制。
【讨论】:
那么,我们为什么要使用 JSON/XML 而不是 Protobuf?我们不应该一直使用 protobuf/bson 吗? @Kaunteya JSON 非常适合浏览器支持。 XML / json 具有人类可读性/可编辑性,这在许多场景中都很好。 XML 通过 xslt、xsd、sax 等具有有趣的工具。要记住的有趣的事情是,您不必将自己限制在一个且只有一个 :)【参考方案2】:它将比 Json 之类的 CPU 和网络更高效,因此,无论何时您知道要发送什么,并且需要发送 很多 个,这可能是一个胜利。
【讨论】:
Tyler 谢谢.. 你能给我一个你以前可能遇到过的例子吗?这将有助于更多地了解它的确切用途。 @Kaunteya 你写过任何类型的数据存储代码吗?任何类型的消息传递代码怎么样?套接字代码?有这样的吗? @Kaunteya 或者再举一个例子:你用过xml吗? json? “我什么时候需要做序列化的东西?”的答案。与那些工具的问题相同。以上是关于协议缓冲区 - 用例的主要内容,如果未能解决你的问题,请参考以下文章