我使用的目录大约有3000个文件。我知道NTFS线程曾经谈论过CreateFile读取10万或数百万个文件的速度很慢。我的数量不是很高,但是CreateFile仍需要大约4-7毫秒才能完成,而当我打开3000个文件时,这些总和会增加。所以我的问题类似于下面的帖子。在某些计算机上,当我调用CreateFile时,它闪电般快,而在其他计算机上,它的速度为4-7毫秒。我已经尝试过Fat32文件系统和NTFS,但运气不佳。与Win7和Win10相同,但两者均较慢。我注意到的唯一共性是,速度较慢的计算机似乎在使用SATA / RAID控制器的计算机上,而速度较慢的计算机在具有标准SATA的计算机上。所有机器都使用SSD驱动器。

请注意:作为实验的一部分,我正在做与以下线程相同的事情。我有一个简单的程序,先调用CreateFile,然后调用CloseHandle。如上所述,它什么也不做,在某些机器上非常慢(4-7ms CreateFile),而在其他机器上很快。以下线程是一个非常相似的问题,但是从来没有一个好的答案。

Why is windows so slow in opening files first time and is there a faster way

谢谢

凹痕

最佳答案

所以我误会了。我没有安装任何第三方防病毒软件,但是仍然安装了Microsoft Security Essentials。这绝对是问题所在,当MSE运行时,CreateFile的运行速度会变慢。因此,如果您运行的是MSE或Windows Defender,则将大大降低CreateFile的速度。

关于c++ - Windows CreateFile打开大量文件时速度较慢,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45870498/

10-11 22:54