【发布时间】:2012-04-04 13:29:16
【问题描述】:
我有大量文件位于 Windows 2003 服务器上的一系列目录中。每个目录中有超过一百万个文件。 Windows 服务器使用 iSCSI 连接到 Equalogics SAN。
我有一个应用程序需要确定一组文件是否存在 - 该应用程序需要检查每个目录是否存在多达一百万个文件。
我尝试了多种技术/脚本语言,包括 perl、vbscript、dos 批处理文件,但每秒无法获得超过 250 个文件检查。检查 800,000 个文件需要将近 50 分钟。我尝试对 perl 程序进行多线程处理以一次检查多个文件,但这没有帮助。
我还尝试使用 dir、ls、find(通过 cygwin)列出目录中的所有文件,但它需要很长时间才能开始输出任何文件名。无论如何,这不是一个好方法,因为文件比我实际需要检查的要多。
有没有办法强制 Windows 对目录进行“预读”,并将文件放入缓存中?
有没有更好的方法来解决这个问题的发现?
【问题讨论】:
标签: windows file filesystems cygwin