gpt4 book ai didi

java - 如何在 Java 中更快地解压缩?

转载 作者:行者123 更新时间:2023-11-29 08:15:15 24 4
gpt4 key购买 nike

我们的系统存在文件过多的问题,这些文件用于本应一直使用的 Web 应用程序。这意味着文件无法删除,而且文件太多,导致系统(Windows)变慢。我们想压缩文件,当请求文件时,我们解压缩特定文件。

我试过java ZipFile类,性能不够好,因为会有很多人使用webapp,他们会请求文件。根据我的观察,解压缩 Action 需要0.5秒到2秒的时间,当用户太多时,系统无法 catch 他们。

例如,我使用 Jmeter 模拟了 30 个用户使用该系统的情况,随机延迟在 0.3 秒到 0.6 秒之间。虽然我怀疑可能不会有那么多请求,但我无法提前知道有多少人会使用 webapps。想请教各位大侠,请问还有什么方法可以解决这个问题吗?

提前致谢!!

附言如果需要任何第 3 方库,它必须是免费的!

附言因为文件太多,挂机了。我们想这样做:将 2000 个文件压缩成一个 zip 文件,然后文件的数量会减少,希望系统不再挂起,在需要时,我们解压缩一些文件。

最佳答案

好的,这里有一些想法。在我看来,您的核心问题是系统运行缓慢,您正试图通过压缩文件并按需解压缩来修复它。然后您发现解压缩速度太慢,您需要一种更快的方法来执行此操作。

现在我不是完全确定为什么您认为这种压缩会加快速度而不是减慢速度。

我会回到最初的问题并努力解决它。 为什么 文件数量使您的系统变慢?如果你能解决这个问题,你就可以用一种不会让事情变得更慢的方式来解决它。

如果是目录中文件太多的问题,请考虑拆分为多个目录。但我不知道 NTFS 是否有这个问题(FAT 有)。例如,如果您有一个包含过去十年中每一分钟的文件的目录(五百万个文件),您可以将它们拆分为一天的目录(三个半千个目录,每个目录中有 1500 个文件)。

压缩不会减少文件的数量,只会减少它们占用的空间。

如果系统上(而不是目录中)的文件数量有问题,也有很多方法可以在系统之间拆分文件。例如,将整个文件集的 10% 分摊到十台不同的机器上,并将对特定文件的传入请求转发到相关机器。

但是,我不得不说,我已经看到 Windows 机器处理绝对数量的文件,所以如果问题就在那里,我会感到非常惊讶。我认为您可能只需要找出真正导致“挂起”的原因。

关于java - 如何在 Java 中更快地解压缩?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5307046/

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