首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >读取数百个文件较慢

读取数百个文件较慢
EN

Stack Overflow用户
提问于 2013-02-19 23:39:44
回答 2查看 225关注 0票数 2

我在处理更多的二进制文件时遇到了问题。我有很多很多的文件夹,每个文件夹里大约有200个bin文件。

我选择其中的两个目录,然后将这两个目录中的所有bin文件(它们的路径)保存到列表中,并对该列表进行一些过滤。在这个列表的最后,有大约200个bin文件。

然后我迭代所有过滤过的文件,并从每个文件中读取前4x8字节(我尝试了FileStreamBinaryReader)。所有这些操作大约需要2-6秒,但只是第一次。下一次就足够快了。如果很长一段时间(约30分钟)内文件没有任何问题,则问题再次出现。

所以这可能是关于缓存之类的东西吧?

有人能帮帮我吗?谢谢

EN

回答 2

Stack Overflow用户

发布于 2013-02-19 23:43:53

很可能是文件的句柄被释放了,这就是为什么GC会在一段时间后删除它们,这需要更长的时间,或者只是文件被操作系统加载到RAM中,然后从那里为你提供服务,这就是为什么它更快,但这不是问题所在,进程运行缓慢是因为它很慢,第二次更快是不相关的,因为你不能依赖它。

我的建议是尽可能多地并行处理这些文件,以便能够充分利用手头硬件的全部功能。

首先隔离处理文件的代码,然后在Parallel.ForEach中运行代码,看看这是否有帮助。

票数 0
EN

Stack Overflow用户

发布于 2013-02-20 00:32:07

一种可能是您的驱动器将进入休眠状态(通常,驱动器将配置为在15-30分钟后关闭电源)。这会增加很大的延迟(典型的数字是5秒),因为硬盘是跨区回速的。

幸运的是,这是一件容易测试的事情。只需将断电时间设置为6小时,然后测试行为是否发生了变化。

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

https://stackoverflow.com/questions/14961361

复制
相关文章

相似问题

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