小编kil*_*971的帖子

为什么 grep/-r/--include 组合比 find/-exec/grep 组合慢?

根据我的理解,以下两个命令大致完成了同样的事情:

命令 1:

find -name "filename.xml" -exec grep someString {} \;
Run Code Online (Sandbox Code Playgroud)

命令 2:

grep -r --include=filename.xml someString .
Run Code Online (Sandbox Code Playgroud)

尽管如此,当在相同的上下文中预热后对它们计时时,第一个比第二个快大约 3 倍(大约 4 秒对 12 秒)。

我测试的文件夹树中匹配文件名模式的文件数量非常少,而且每个文件都非常小。这让我觉得大部分时间都花在查找与文件名模式匹配的文件上,而不是花在这些匹配文件的 grepping 上。

那么为什么这两个命令行的性能会有如此大的差异呢?

performance grep command-line find

6
推荐指数
1
解决办法
683
查看次数

标签 统计

command-line ×1

find ×1

grep ×1

performance ×1