当我执行cp folder1 folder2 -rf
时,第一次大约需要 10 分钟。但是当我执行第二个命令cp folder1 folder3 -rf
时,大约需要 1 分钟。folder1
包含大约 100 000 个文件。
为什么第二次有运行时间改进?
这是因为页面缓存。运行sync ; echo 3 > /proc/sys/vm/drop_caches
让它再次变慢。
进一步阅读:
第一次从硬盘读取文件。
第二次从内存中读取文件。
与大多数操作系统一样,Linux 将访问的文件/块缓存在内存中。
这是因为文件现在存储在内存缓存中。第一次执行此命令时,它必须从磁盘读取文件,这要慢得多。如果您想运行任何形式的使用磁盘访问的基准测试,记住这一点也很重要,例如,在执行实际基准测试之前添加“cat MYFILE >/dev/null”以获得一致的结果。