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

java – 寻找快速,紧凑,可流式,多语言,强类型的序列化格式

发布时间:2020-12-14 19:10:51 所属栏目:Java 来源:网络整理
导读:我目前在我的Java项目中使用JSON(通过gzip压缩),我需要在磁盘上存储大量对象(数亿个).我每行有一个JSON对象,并禁止JSON对象中的换行符.通过这种方式,我可以逐行从磁盘流式传输数据,而无需一次读取整个文件. 事实证明,解析JSON代码(使用http://www.json.org/j

我目前在我的Java项目中使用JSON(通过gzip压缩),我需要在磁盘上存储大量对象(数亿个).我每行有一个JSON对象,并禁止JSON对象中的换行符.通过这种方式,我可以逐行从磁盘流式传输数据,而无需一次读取整个文件.

事实证明,解析JSON代码(使用http://www.json.org/java/)比从磁盘上提取原始数据或解压缩它(我在运行中做)更大的开销.

理想情况下,我想要的是强类型序列化格式,我可以在其中指定“此对象字段是字符串列表”(例如),并且因为系统知道会发生什么,它可以快速反序列化.我也可以通过给别人“类型”来指定格式.

它还需要跨平台.我使用Java,但与使用PHP,Python和其他语言的人一起工作.

所以,回顾一下,它应该是:

>强力打字
> Streamable(即,逐位读取文件,而不必一次性将其全部加载到RAM中)
>跨平台(包括Java和PHP)
>快
>免费(如发言)

有什么指针吗?

最佳答案
您是否查看了Google协议缓冲区?:

http://code.google.com/apis/protocolbuffers/

它们是跨平台的(C,Java,Python),还有用于PHP的第三方绑定.它快速,相当紧凑和强类型.

这里还有各种格式之间有用的比较:

http://code.google.com/p/thrift-protobuf-compare/wiki/Benchmarking

您可能想要考虑Thrift或此处提到的其他一个.

(编辑:李大同)

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

    推荐文章
      热点阅读