我注意到,find <dir> -depth
第一次在目录上使用时,它会消耗相当多的时间,但下次即使在搜索不同的模式时,它看起来也很快。
这是为什么?这种行为是否可以进一步用于实现更好的性能?
答案1
当您第一次键入命令时find
,操作系统必须从磁盘获取子目录信息。第二次输入相同的命令时,您会从缓存中获取数据,速度更快。
如果您使用不同的模式过滤输出,find
即使只有某些条目与模式匹配,也会完全读取每个目录。然后缓存将充满其他模式所需的信息。
但是,如果您使用系统一段时间,缓存内存可能用于其他目的……那么相同的find
命令可能必须再次从磁盘取回数据,并且可能会像第一次一样慢。如果您想限制重用高速缓存的风险,则必须添加内存。