从一个目录中读取许多小文件是多么有问题
How problematic is it to read many small files from one directory?
我必须读取许多(最多500万个)小(9 KB)文件。目前它们都在一个目录中。我担心这需要花费2次的时间甚至是n^2 log n的时间来查找,对吗?这很重要吗(查找会比实际读取花费更多时间吗)?当文件被操作系统缓存时,运行时的渐近行为是否有差异?
我使用c++流来读取文件。目前我使用的是带有NTFS的Windows 7,但稍后我将在linux集群上运行该程序(不确定是哪个文件系统)。
情况可能没那么糟:如果枚举文件,并在遇到每个文件名时处理它,那么操作系统很可能在其磁盘缓存中有目录条目。实际上,磁盘缓存是0(1)。
将杀死你的是一个机械硬盘。您将有500万次磁盘搜索,每次搜索大约需要1/100秒。这是5万秒,比半天还多。
相关文章:
- txt 文件中浮点数的最大和最小值
- 为什么许多项目不提供预编译的二进制文件?
- 许多文件描述符在调用sys_clone时
- 显示文件中具有最小给定元音数的单词
- 程序正在从文件中读取最大的数字,但不是最小的数字
- 哪个链接更快?许多小的 .so 文件还是几个大的 .so 文件?
- 使用 for 循环在 c++ 中写入许多文件
- 为许多类可能需要的所有常量变量制作独立的头文件是否是一种很好的做法?
- 将STL文件添加到QT小部件
- 如何使用直接IO编写一个带有扩展文件大小的小文件
- 要读取txt文件并从第二列中找到其最小值的第一列值
- C :如何从格式的文本文件中读取许多数据到程序中
- MMAP仅适用于小文件
- 许多小部件似乎对太空栏键按事件具有默认行为.我该如何覆盖它而不将每个小部件分类
- 使用许多小部件设置UI对象
- 为什么在分配/解除分配许多小对象后内存不可重用
- 在NTFS上打开许多小文件太慢了
- 相同源代码的.so文件要小得多
- 从一个目录中读取许多小文件是多么有问题
- 动态分配许多小块内存