为什么结果保存到一个目录时减慢模拟速度?

时间:2014-01-29 01:48:24

标签: windows matlab diskspace

非常喜欢帮助弄清楚脚本运行速度比以前慢得多的原因。 该脚本启动顺序Matlab仿真,并将每个仿真的输出保存到计算机#1上的目录中的文件中。该脚本在计算机#2,3和4上运行,它们将计算机#1的C:驱动器安装为驱动器K:,并且计算机在模拟期间读取和写入K:驱动器文件。在开始每次模拟之前,脚本会保存模拟输出文件的“占位符”版本,一旦模拟完成,该文件的模拟结果将被覆盖。输出文件名对于该模拟是唯一的。脚本在开始模拟之前检查输出文件;如果找到该文件,则进入下一个模拟。目的是在不同的计算机之间划分许多模拟。计算机#1上的目录中包含许多文件(~4000,6GB),计算机#1是旧的Windows XP计算机。计算机#2-4也是Windows机器,已有2年以上的历史。

这个方案以前工作正常,每分钟节省约3个文件。现在每个文件大约需要15分钟。 可能导致速度放缓的主要原因是什么?可能是目录中的文件数量还是访问计算机#1的计算机数量?如果这不太可能,我想知道,所以我可以重定向我的故障排除。

2 个答案:

答案 0 :(得分:1)

单个目录中的项目数绝对会导致性能下降。我已经读到它取决于操作系统,文件系统,月相,本地/远程驱动器......可能是月相。

我个人的经验法则是,每个目录的大约5,000个项目的性能开始下降,大约10,000个性能已经降低到足以使您无论做什么都不再正常工作。

答案 1 :(得分:1)

事实证明问题是各种计算机插入的旧网络交换机。当我们尝试更新的开关时,脚本像闪电一样运行。

然而,每个人的建议(减少文件数量的子目录;对计算机#1进行碎片整理,结果非常碎片化)都非常有用,而且对这个问题有其他看法很好,谢谢。