一尘不染

如何配置文件I / O?

java

我们的构建令人讨厌。这是一个用Ant构建的Java系统,我正在Windows
XP上运行我的Java系统。取决于硬件,可能需要5到15分钟才能完成。

观察计算机上的总体性能指标,以及将硬件差异与构建时间相关联,表明该过程受I / O约束。这也表明该过程所做的阅读工作远胜于写作。

但是,我还没有找到确定要读取或写入 哪些
文件以及执行多少次的好方法。我的怀疑是,随着我们的许多子项目以及随后对编译器的调用,该构建多次重读相同的常用库。

有哪些配置文件工具可以告诉我给定进程正在处理哪些文件?免费是不错的,但不是必需的。


根据Jon Skeet的建议,使用ProcessMonitor,我可以证实自己的怀疑:几乎所有磁盘活动都是读取和重新读取库,而JDK的“
rt.jar”副本和其他库位于顶部。名单。我无法使RAM磁盘足够大以容纳我使用的所有库,但是在RAM磁盘上安装“最热”的库会使构建时间减少了大约40%;显然,即使我已告诉Windows为此进行优化,Windows文件系统的缓存也无法很好地完成工作。

我注意到的一件有趣的事情是,对JAR文件的典型“读取”操作只有几十个字节。通常有两个或三个,然后在文件中再跳过几千字节。它似乎不适合批量读取。

我将对闪存驱动器上的 所有 第三方库进行更多测试,并观察其效果如何。


阅读 213

收藏
2020-12-03

共1个答案

一尘不染

如果 Windows需要它,则SysInternals ProcessMonitor应该向您显示您需要了解的所有内容。您可以选择进程,然后逐一查看每个操作,并获得文件操作的摘要。

2020-12-03