5

我正在使用 ack(有时作为 ack-grep 分发)来搜索复杂的代码目录、图像,谁知道还有什么,它的反应非常缓慢。我如何诊断它正在搜索的东西使它变慢,以便我可以让它忽略它们?

我刚刚意识到我的 ack-grep 很慢的原因可能会因为同样的原因使 grep 变慢,所以我更改了标题的措辞以指代两者。

当前 ack-grep 命令别名:

function view ()
{
echo "ack-grep -i $@ // ignoring third-party directories"
ack-grep -i --ignore-dir=third-party --ignore-dir="unclean-files" --ignore-dir=FCKeditor --ignore-dir=smarty --ignore-dir=codepress --ignore-dir=yui "$@"
}

因此,我通过该别名对某些字符串进行不区分大小写的搜索,例如view "Oops! Required fields",忽略某些目录。

我想我真正可以使用的是 grep 或 ack-grep 的“详细”模式,这样我就可以直观地看到它挂在上面的子目录,因为它们搜索速度很慢。

4

2 回答 2

5

最后使用 -L 开关使其输出匹配的所有文件,以便快速直观地诊断问题。仅使用以下命令结构:

ack-grep -L "Oops! Required fields were not all completed."

于 2011-04-05T18:42:17.977 回答
1

你在寻找什么?如果它只是特定类型的源(比如您正在寻找一个变量),请使用适当的开关(对于 perl,使用 --perl 等)。如果你有大量的资源,不管你做什么都需要一段时间。

Ack-grep 只是像你说的那样聪明。另外,你的正则表达式有多复杂?正则表达式有开销,如果您只是在搜索某物的名称,请不要使用正则表达式。你不应该用锤子来松开螺栓。

于 2011-04-05T18:15:52.447 回答