3 ms·
It seems like it is only faster because it applies a bunch of heuristics to avoid searching certain files and directories altogether. I use "ack" myself and it'
by neilc 18y ago
It seems like it is only faster because it applies a bunch of heuristics to avoid searching certain files and directories altogether. I use "ack" myself and it's quite nice, but the heuristics aren't perfect: ack won't search for strings inside yacc grammars (".y" files) by default, for example.
- smanek 18y agoTrue, part of the speed comes from it's (configurable) heuristics. But, it's faster even when doing the same thing. For example, see the benchmark at http://blog.i-no.de/archives/2008/05/06/index.html http://blog.i-no.de/archives/2008/05/06/index.html. Then end result is that, on the same search, ack is approximately 5 times faster than grep. I ran a few test cases myself and got similar results. But the real reason I like it is the perl compatible regexes. The differences between perl regexes and gnu regexes are just big enough to be an annoyance.
- jrockway 18y agoIt doesn't use "perl compatible regexes", it uses Perl.
- neilc 18y agoIn that particular case, ack's performance advantage seems to arise mostly because of a bug that causes GNU grep to be terribly slow in multibyte locales: http://blog.i-no.de/archives/2008/05/07/index.html http://blog.i-no.de/archives/2008/05/07/index.html http://savannah.gnu.org/bugs/index.php?14472 http://savannah.gnu.org/bugs/index.php?14472