我要读很多(最多5 mio)。小(9 KB)文件。目前,它们都在一个目录中。我担心这将花费二次时间甚至n^2 log n来查找,对吗?这是否重要(查找花费的时间是否会比实际读取的时间更长)?当操作系统缓存文件时,运行时间的渐近行为是否有所不同?
我使用C++-streams来读取文件。目前,我使用的是带有NTFS的Windows7,但稍后我将在linux集群上运行该程序(不确定是哪个文件系统)。
发布于 2016-09-12 21:06:28
这可能并不是那么糟糕:如果您枚举文件,并在遇到文件名时对其进行处理,那么您的操作系统很可能在其磁盘缓存中具有目录条目。出于实际目的,磁盘缓存为O(1)。
什么将杀死你是一个机械硬盘。您将有500万次磁盘寻道,每次寻道大约需要1/100秒。那是50.000秒,比半天还多。这是一项迫切需要SSD的任务。
https://stackoverflow.com/questions/39449868
复制相似问题