gpt4 book ai didi

java - 如何控制 Java 中的文件压缩参数以更快地解压缩对象?

转载 作者:行者123 更新时间:2023-11-29 05:22:28 27 4
gpt4 key购买 nike

我正在将我创建的一些大型 Java 对象写入一个文件,然后再读回它。我正在使用压缩,因为对象非常大,我有大约 600 个不同的实例(每个实例都在一个单独的文件中)。我目前正在将 bzip2 与 Apache 的 org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream 一起使用:

import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream;
import org.apache.commons.lang3.SerializationUtils;

InputStream in = new BZip2CompressorInputStream(new FileInputStream("myfile.bz2"));
Document doc = (Document) SerializationUtils.deserialize(in);

问题是目前解压时间比较长(超过10秒),所以读取全部600个对象需要两个小时左右。我想要么使用更快的压缩类,要么控制当前类的参数以便解压更快(我最担心解压时间,因为它多次出现,慢压缩是可以忍受的)。我也愿意为解压速度付出更大的压缩文件的代价。

当使用不同的软件进行压缩时,您通常可以选择“压缩级别”,其值为“最快”、“快速”、“正常”、“最佳”。有时您甚至会得到更多参数,例如“压缩方式”、“词典大小”、“字数大小”等。

有谁知道如何通过代码控制这些参数,有哪些推荐值?或者只知道快速减压类(class)?

最佳答案

BZip2 获得了非常好的压缩比,但代价是相当慢。在光谱的另一端是类似 snappy 的东西。 ,速度非常快,但压缩率不高。 GZip 在中间。

Here是 java 中一些压缩基准的列表。

关于java - 如何控制 Java 中的文件压缩参数以更快地解压缩对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24119916/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com