Comment by burntsushi

Comment by burntsushi 13 hours ago

2 replies

Look at ag's issue tracker. There are some very critical bugs. You might be impacted by them and not even know it.

As for perf, it's not hard to witness a 10x improvement that you'll actually feel. On my checkout of the Linux kernel:

    $ (time rg -wi '\w+(PM_RESUME|LINK_REQ)') | wc -l

    real    0.114
    user    0.547
    sys     0.543
    maxmem  29 MB
    faults  0
    444

    $ (time ag -wi '\w+(PM_RESUME|LINK_REQ)') | wc -l

    real    0.949
    user    6.618
    sys     0.805
    maxmem  65 MB
    faults  0
    444
Or even basic queries can have a pretty big difference. In my checkout of the Chromium repository:

    $ (time rg Openbox) | wc -l

    real    0.296
    user    1.349
    sys     1.950
    maxmem  71 MB
    faults  0
    11

    $ (time ag Openbox) | wc -l

    real    1.528
    user    1.849
    sys     8.285
    maxmem  29 MB
    faults  0
    11
Or even more basic. You might search a file that is "too big" for ag:

    $ time ag '^\w{42}$' full.txt
    ERR: Skipping full.txt: pcre_exec() can't handle files larger than 2147483647 bytes.
EliMdoza 8 hours ago

been using both for many years now, have never ran into issues or even been able to tell any difference in speed, let alone 10x

what I notice unfortunatly, is that I often miss search results with rg becuase I forget I need to pass the additional -i flag. this has shaped my perception of rg - extra focus on performance, sub-optimal ux

  • burntsushi 7 hours ago

    Whether smart case is enabled by default (as ag does) could easily go either way. Notably,.I think having it disabled by default is a better UX. But ripgrep does have a --smart-case flag, which you can add to an alias or a ripgrep config file. It also works more consistently than ag's smart case feature, which has bugs.

    See my other comments about perf difference. And ag has several very critical bugs. And it's unmaintained.

    > or even been able to tell any difference in speed

    If you only search small amounts of data, then even a naive and very slow grep is likely just fine from a perf perspective.