如何“查找”优化连续运行?

时间:2019-04-09 20:45:59

标签: bash

我注意到只有对find的第一次调用需要很多时间(并且多次访问硬盘驱动器,因为它会产生噪音),同时连续的调用也得到了优化。

命令find如何做到这一点?

我在bashfish上看到了相同的行为。在ext4ntfs上具有相同的行为(即使我仅在ntfs上执行了> 1mil个文件的测试)

例如

# on SSD
$ time find . -type f -name "*.m"| wc -l
33

real    0m1,189s
user    0m0,090s
sys     0m0,295s

$ time find . -type f -name "*.m"| wc -l
33

real    0m0,203s
user    0m0,053s
sys     0m0,149s
# on SSD
time find . -type f -name "*.java"| wc -l
547

real    0m11,982s
user    0m1,645s
sys     0m1,012s

$ time find . -type f -name "*.java"| wc -l
547

real    0m4,184s
user    0m1,581s
sys     0m0,970s

在具有超过300万个文件的文件夹中,所需时间从1-2分钟变为:

# on HD
$ time find . -type f | wc -l
3746258

real    0m2,778s
user    0m0,753s
sys     0m1,037s

0 个答案:

没有答案