0

我在 Java 中删除文件/文件夹时性能不佳。

代码很旧,我想知道 Java 7(我升级到的)是否真的提供了性能改进,或者只是另一种语法。(除非有好处,否则我不想重组所有东西)。我经常需要提取大 ZIP,然后删除内容,递归时间很残酷。

我也被困在 Windows 上。

谢谢

4

2 回答 2

2

我建议使用社区已经提供的某种罐子。例如common-io.xx.jar、spring-core.jar

    Eg, org.apache.commons.io.FileUtils;
        FileUtils.copyDirectory(from, to);
        FileUtils.deleteDirectory(childDir);
        FileUtils.forceDelete(springConfigDir);
        FileUtils.writeByteArrayToFile(file, data);

        org.springframework.util.FileSystemUtils;
        FileSystemUtils.copyRecursively(from, to);
        FileSystemUtils.deleteRecursively(dir);
于 2012-09-24T15:23:46.893 回答
1

文件 IO 非常依赖于硬件的性能。许多 HDD 每秒可以执行 80 - 120 IOPS。如果要打开文件,每秒最多可以读取 120 个文件。要删除一个文件,它可能需要两次更新或每秒最多删除 60 个文件。有了这些限制,您在软件中几乎无能为力,这将产生任何影响。

但是,如果您有 SSD,这些可以每秒执行 80,000 到 230,000 IOPS(增加一千多倍)此时您所做的软件可能会有所不同,但是当您处理压缩文件时,它最喜欢那个 CPU此时将成为您的瓶颈。

于 2012-09-24T14:47:10.347 回答