首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CreateFile接口性能下降

CreateFile接口性能下降
EN

Stack Overflow用户
提问于 2009-05-28 18:04:10
回答 4查看 834关注 0票数 2

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

你知道是什么原因造成的吗?

提前感谢您的所有回答/建议。

致敬,布山

EN

回答 4

Stack Overflow用户

发布于 2009-06-09 19:42:56

文件系统是否为NTFS?数百万个文件是否位于同一个目录中,它们是否具有相似的名称?从technet article on NTFS internals

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

您可以使用命令行工具‘fsutil’查询此行为:

代码语言:javascript
复制
fsutil behavior query disable8dot3
票数 2
EN

Stack Overflow用户

发布于 2009-05-29 02:03:28

您能提供一些关于存储库数据和创建文件的位置的信息吗?

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

票数 1
EN

Stack Overflow用户

发布于 2009-05-28 18:10:23

可能与系统缓存发生冲突?您可以查看CreateFile文档中的缓存行为部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/922359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档