Windows CreateFile-API的性能下降

Windows CreateFile-API的性能下降,windows,windows-server-2003,Windows,Windows Server 2003,我有一个从库中恢复大量数据的应用程序。我们正在使用WindowsServer2003。随着过程的进展,我们看到性能下降。我为4项主要任务添加了一些性能计数器:创建文件、从库中读取、写入数据、关闭文件。我们正在恢复数百万个文件。 我观察到createfile API的性能随着过程的进展而下降。其他操作是一致的 你知道这是什么原因吗 提前感谢您提供的所有答案/建议 问候,, 宝山是否可能与系统缓存发生冲突?您可以查看文档中的“缓存行为”部分,以便。能否提供一些有关库数据存储位置和文件创建位置的信息

我有一个从库中恢复大量数据的应用程序。我们正在使用WindowsServer2003。随着过程的进展,我们看到性能下降。我为4项主要任务添加了一些性能计数器:创建文件、从库中读取、写入数据、关闭文件。我们正在恢复数百万个文件。 我观察到createfile API的性能随着过程的进展而下降。其他操作是一致的

你知道这是什么原因吗

提前感谢您提供的所有答案/建议

问候,,
宝山

是否可能与系统缓存发生冲突?您可以查看文档中的“缓存行为”部分,以便。

能否提供一些有关库数据存储位置和文件创建位置的信息


例如,如果您正在将所有输出文件创建到同一目录中,您可能会发现
CreateFile
正在减速,因为它需要检查越来越多的文件名是否存在冲突。

我的心理调试器说您正在泄漏句柄。您是否正在关闭正在创建的所有调用文件?

文件系统是否为NTFS?数以百万计的文件是否将被放在同一个目录中,它们是否有相似的名称?从:

如果文件夹中有大量文件(300000或更多),且文件名较长且具有相同的初始字符,则创建文件所需的时间会增加。之所以会增加,是因为NTFS将短文件名基于长文件名的前六个字符。在包含超过300000个文件的文件夹中,NTFS使用所有与长文件名类似的8.3名称后,短文件名开始冲突。生成的短文件名与现有短文件名之间的重复冲突会导致NTFS将短文件名重新生成6到8次

可以使用命令行实用程序“fsutil”查询此行为:

fsutil behavior query disable8dot3