google protobuf最大大小

罗宾·巴贾伊

我的protobuf讯息中有一些重复的内容。在运行时,消息的长度可以是任意长度-我看到已经像这样问了一些问题-[1]:最大序列化Protobuf消息大小

  1. 我在这里有一个稍微不同的问题。如果我的JMS(Java消息服务)提供程序(在这种情况下,是我的weblogic或tibco jms服务器)对最大消息大小没有任何大小限制,那么协议缓冲区编译器会完全抱怨最大消息大小吗?
  2. 在大尺寸(大约10MB左右)下,编码/解码的性能是否会受到严重影响?
肯顿·瓦尔达(Kenton Varda)

10MB正在推动它,但您可能会没事的。

Protobuf的硬限制为2GB,因为许多实现使用32位带符号算术。出于安全原因,许多实施方式(尤其是Google提供的实施方式)默认都限制为64MB,不过您可以根据需要手动增加此限制。

该实现本身不会“放慢”大消息本身,但是问题是,在开始使用任何内容之前,必须始终一次解析整个消息。这意味着整个消息必须适合RAM(请记住,在解析内存消息对象之后,该对象比原始序列化消息要大得多),即使您只关心一个字段,也必须等待整个过程才能完成。解析。

通常,我建议根据经验将自己限制为1MB。除此之外,考虑将消息拆分为多个可以独立解析的块。但是,每个应用程序-对于某些应用程序来说10MB都不是什么大问题,对于其他应用程序来说1MB已经太大了。您必须分析自己的应用程序才能找到。

实际上,我已经看到人们乐于发送大于1GB的消息的情况,因此...它“有效”。

附带说明,Cap'n Proto与Protobuf的设计非常相似,但是可以支持高达2 ^ 64字节的消息(每个2 ^ 32段,每段4GB),并且实际上允许您从消息中读取一个字段而无需解析整个消息(如果它在磁盘上的文件中,mmap()请避免读入整个消息)。

(公开:我是Cap'n Proto的作者,也是Google大部分开源Protobuf代码的作者。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Google Glass上apk的最大大小是多少?

来自分类Dev

Google Glass上apk的最大大小是多少?

来自分类Dev

Google数据存储区中的索引号是否有最大大小

来自分类Dev

Google表格-如何处理REPT()最大大小以进行FULL OUTER JOIN

来自分类Dev

ArrayField最大大小?

来自分类Dev

NLog MemoryTarget的最大大小

来自分类Dev

Gson JSON最大大小

来自分类Dev

iOS应用的最大大小

来自分类Dev

SQL最大大小LONGTEXT

来自分类Dev

覆盖WizardSmallImage的最大大小

来自分类Dev

CSS元素最大大小

来自分类Dev

维持最大大小的向量?

来自分类Dev

初始大小与最大大小页面文件

来自分类Dev

标题大小超过固定的最大大小

来自分类Dev

PostgreSQL子表的最大大小是多少

来自分类Dev

查找可以分配的最大大小的数组

来自分类Dev

NSQ消息的最大大小是多少?

来自分类Dev

Python中字典的最大大小?

来自分类Dev

Elasticsearch文档的最大大小是多少?

来自分类Dev

集中的rsyslog:消息的最大大小

来自分类Dev

QList的最大大小是多少?

来自分类Dev

size_t的最大大小

来自分类Dev

BigTextStyle通知的最大大小是多少

来自分类Dev

WebImage的最大大小,允许的文件格式等

来自分类Dev

与netTcp结合使用的maxConnections的最大大小

来自分类Dev

增加char数组的最大大小

来自分类Dev

Android应用程序的最大大小

来自分类Dev

Android Java ArrayList可能的最大大小

来自分类Dev

Java:创建最大大小的实例