4 ms·
Anyone have a sense of how the new Ack 2.0 compares to The Silver Searcher[1] (aka Ag)? I've been using TSS for some time now and it's been completely awesome
by saidajigumi 14y ago
Anyone have a sense of how the new Ack 2.0 compares to The Silver Searcher[1] (aka Ag)? I've been using TSS for some time now and it's been completely awesome in both performance and functionality compared to Ack v1.
[1] https://github.com/ggreer/the_silver_searcher https://github.com/ggreer/the_silver_searcher
- epmatsw 14y agoIt would be interesting to see benchmarks on this. I know TSS was faster before, and this release didn't seem to highlight any performance improvements.
- petdance 14y agoChances are that if there are any performance changes, it might even be a decrease in speed because of having to find .ackrc files. We haven't gone profiling 2.0 yet, but that's near the top of our list.
- epmatsw 14y agoThat's pretty much what I figured. If we wait a bit, I wouldn't be surprised to see a writeup from Geoff, the author of Ag. His blog posts when he started development on it were really interesting. http://geoff.greer.fm/2011/12/27/the-silver-searcher-better-than-ack/ http://geoff.greer.fm/2011/12/27/the-silver-searcher-better-...
- ggreer 14y agoWhen it comes to improving Ag's speed, there's not much more to write about. I've used every dirty trick I know: mmap()ed I/O, threads, Boyer-Moore-Horspool strstr(), PCRE-JIT, etc. Now when I profile, Ag spends the majority of its time reading files off disk. On most systems, this is true even if the files have been cached in memory by the OS. The limiting factor is memory bandwidth. Anyways, I don't really have the time for long analysis posts these days. I'm busy working on something that captures value in addition to creating it. :)
- burke 14y agoNo mention of mmap in the ack release notes, so I'd imagine ag is still much faster.
- Groxx 14y agosounds great - thanks! I hadn't heard of this before
- cpeterso 14y agoI had never heard of The Silver Searcher. Thanks! A test search of a huge codebase (Firefox) took 38 seconds with ack, but only 17 with ag! After my page cache had been warmed up, ack then took 10 seconds and ag only took 3. That said, I am using ack 1.96, not ack 2.0. $ brew uninstall ack
- petdance 14y agoIt's OK to have two similar tools in your toolbox. When you need the --output option, for example, you use ack. When you want crazy speed, you use ag. You don't have to choose one over the other. That's why I changed the name from "betterthangrep.com" to "beyondgrep.com". There's no need to have a ranking of "I use this over that."
- __david__ 14y agoAh, you Perl guys and your "there's more than one way to do it". :-) Disclaimer: I'm a Perl guy and I agree.
- petdance 14y agoAlso, take a look at http://beyondgrep.com/more-tools/ http://beyondgrep.com/more-tools/. There are a dozen other tools on there as well that you might well like as much as ack and ag. An abundance of tools is good.
- jdhore 14y agoI've contributed to ag and followed it quite closely. That being said, I still have ack on all my systems because sometimes, being able to just do: ack --python search-term is REALLY useful.
- lloeki 14y agoTurning things around, I often have SQL dumps around, so ack --no-sql is a real lifesaver in my Rails (i.e ruby, coffee, less, shell and whatnot) projects.
- masklinn 14y agoThough I've switched to ag, I still miss Ack's selection and deselection flags. Those are much sweeter than ag's -g and -G and it looks like they've improved further