遍历使用通配符模式查找文件的目录时,我们遇到了意外的性能问题.
我们有180个文件夹,每个包含10,000个文件.使用dir< pattern>的命令行搜索/ s几乎立即完成(<0.25秒).但是,从我们的应用程序,相同的搜索需要3-4秒. 我们最初尝试使用带有SearchOption.AllDirectories的System.IO.DirectoryInfo.GetFiles(),现在尝试使用Win32 API调用FindFirstFile()和FindNextFile(). 使用我们的代码进行分析表明绝大部分执行时间都花费在这些调用上. 我们的代码基于以下博文: http://codebetter.com/blogs/matthew.podwysocki/archive/2008/10/16/functional-net-fighting-friction-in-the-bcl-with-directory-getfiles.aspx
我们发现这很慢,所以更新GetFiles函数以采用字符串搜索模式而不是谓词.
任何人都可以对我们的方法可能出现的问题有所了解吗?