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

Java序列化的效率如何?

发布时间:2020-12-15 04:34:43 所属栏目:Java 来源:网络整理
导读:我们有一个名为Row的类,它表示结果集中的一行.我们需要写一个List Row提交文件,以便以后可以检索. 一种方法是使用Java的序列化支持. 我想最好的方法是在Row类中实现序列化.然后我们将使用List Row的serialize方法,以便写入文件. 我想知道,这会有多高效?与仅
我们有一个名为Row的类,它表示结果集中的一行.我们需要写一个List< Row>提交文件,以便以后可以检索.

一种方法是使用Java的序列化支持.

我想最好的方法是在Row类中实现序列化.然后我们将使用List< Row>的serialize方法,以便写入文件.

我想知道,这会有多高效?与仅仅编写转换我们的List< Row>的CSV文件适配器相比,它会占用更多的空间吗?对象为CSV文件?

解决方法

Would it take up far more space than simply writing a CSV file adapter that converts our List object to a CSV file?

这取决于Row的类型,以及您要保存的数据的大小和其他方面1.

一方面,Java序列化协议包括序列化中提到的每个类的元数据.这需要很大的空间.

另一方面:

> Java序列化仅包含每个序列化一次的元数据.因此,如果序列化同一类的大量实例,则元数据成本变得无关紧要.
>在CSV文件中,必须将所有非文本数据转换为文本.在某些情况下(例如,大数,浮点数,布尔值),文本表示将大于Java序列化中使用的二进制表示.

1 – 例如,随机数的数组与零和1的数组.在第一种情况下,Java序列化会更好,而在第二种情况下,CSV会更好.

但我认为你可能在这里关注错误的事情:

>除非您生成的文件很大,否则大小可能无关紧要.磁盘空间很便宜.
>在任何一种情况下,文件都可能是可压缩的,密度较小的形式可能更具可压缩性.
>更重要的是表述是否适合目的;例如

>你想让它成为人类可读的吗?>您希望非Java程序(包括shell脚本)可以读取它吗?>您是否需要担心Java代码的更改会引入类与序列化版本问题?>您希望能够流式传输数据吗? (写作或阅读时.)

(编辑:李大同)

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

    推荐文章
      热点阅读