如何准确计时grep命令?

9 cache hard-disk measure

我想比较这两个命令的速度:

grep pattern1 files* 
grep pattern2 files* 
Run Code Online (Sandbox Code Playgroud)

不幸的是,第一个 grep 将大量文件*读入内存缓冲区,因此第二个 grep 运行得非常快,但原因错误。

我如何告诉 Linux (Fedora 11):“请停止缓存磁盘读取,因为我正在测试一些东西。”

mat*_*tdm 10

我认为您不能轻易告诉它“暂时停止缓存”。但是你可以做的是告诉系统在每次运行之前删除缓存:

作为根:

sync; echo 3 > /proc/sys/vm/drop_caches
Run Code Online (Sandbox Code Playgroud)

(这在Documentation/sysctl/vm.txt的内核文档中进行了记录,如果像我们中的一些人一样,您不能总是立即记住值 1、2 或 3 的作用,这很方便。)

或者,当然,准备好缓存并比较缓存的性能。(我认为这两个都是有用的数字。)

  • @barrycarter:您可能在 shell 中设置了 -o noclobber,这使得它不会让您使用 > 覆盖现有文件。 (3认同)