加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 原始缓冲区的限制 – 加载部分数据和共享字符串

发布时间:2020-12-15 00:47:33 所属栏目:Java 来源:网络整理
导读:我想检查原始缓冲区是否是我使用的最好的序列化程序,我的研究发现没有其他的接近. 我正在处理 java后端和android( java)移动应用程序,但是可能在不久的将来会创建其他客户端,所以我想要一个跨平台的东西. 数据结构粗略: message All { repeated Line lines
我想检查原始缓冲区是否是我使用的最好的序列化程序,我的研究发现没有其他的接近.
我正在处理 java后端和android( java)移动应用程序,但是可能在不久的将来会创建其他客户端,所以我想要一个跨平台的东西.
数据结构粗略:
message All {
    repeated Line lines = 1;
    Common common = 2;
}

有几百个Line对象,每行都相当复杂,自己需要?100 kB.

我使用原始缓冲区看到的两个问题
– 在应用程序启动时,我只需要一小部分可用的数据 – 只需“常用”和“Line”的基本信息.是否可以加载部分数据?
– 每个Line对象包含数百个字符串,但是在多个Line对象中会出现相同的字符串,因此我想尝试在这些对象之间共享它们.是否可能在原始buf级别,还是需要成为应用程序级别的一部分?

谢谢!

解决方法

从您给出的有限规格,很难给出适当的反馈.你说,对于你的问题,最好的解决方案似乎是protobuf,但是我们不能从给出的信息重新评估.

根据你写的内容,我甚至会说一个简单的GZIPped字节数组(或者大部分是可打印的JSON)(可以说是他们是Strings))可能会更好(“重复使用”跨线对象的很多东西=&gt ; GZIP将摇滚).

正如其他人所说:使用protobuf,不可能加载“部分数据结构”(实际上你不会是部分数据结构),只要“重复”部分是一个集合,因为比protobuf将会分配你的结构本身的数据).

我会把我的两美分GZIPped JSON流(例如,与杰克逊),当然,在这种情况下,您将减少带宽与CPU周期的成本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读