有人试过ugrep吗?

据说速度比ripgrep快. 实际使用体验如何?

2 个赞

在用(project-find-regexp),但只是偶尔用,主要是counsel-rg用习惯了。

比rg更快!我这儿用project-find-regexpcounsel-rg在同一个项目里搜同样内容,能明显感觉出来速度差异。

不过没拿emacs -Q对比测试,不确定我的配置会有多大影响。

1 个赞

好我试一下ugrep counsel-rg也许通过设置counsel-rg-base-command可以改为用ugrep

一个小白问题,grep的替代品那么多,都比grep更快,更好用。为什么grep还有那么多人在用,还是系统默认值,有没有什么发行版是直接就把grep换掉的

以前好像试过,问题比较多,刚才试了下windows下gbk编码,中文肯定是搜索不出来的(rg也是),但英文直接提示Binary file xxxx.h matches,懒得继续了。

改了一下试了试,像是counsel-rg本身慢(或者我配置导致的问题),没有在project-find-regexp里用ugrep那么快。

(setq counsel-rg-base-command '("ug" "--line-number" "%s"))

我又把project-find-regexp改成用rg,跟用ugrep比较起来速度没有明显差异。

所以我觉得应该更正下我上个回复说的:确实够快,但是比ripgrep快多少不好说。

1 个赞

之前 reddit 上看有人讨论过 benchmark,没有复现比 ripgrep 快,当然影响 benchmark 的因素也比较多。不过感觉都很快了,速度应该没有太大的比较意义了

1 个赞

是的,rg/ug都够快了。

@redguardtoo 不好意思啊,上面没有好好测试就回复了,误导你了,抱歉。

因为 shell 脚本里要用 grep 的本职功能:搜索 stdio 里的内容,这些 XXgrep 主要是对 grep 的扩展功能:搜索文件的功能做了 grep 本身没有的并行优化,反而不能实现 grep 的本职工作。

而 grep 在其本职工作上,已经用了已知最好的算法,stdio 的搜索也没法并行化,自然没有替代品,哪怕用 rust 重写也提升有限。

这些 XXgrep 其实替代的是 https://beyondgrep.com/

本身是个 Perl 写的,提供通过类似 grep 的参数搜索文件的一个工具。

12 个赞

都是号称快,实际使用下来差别不大。记得看过两篇文章(一时没找到出处,好像在reddit上),一篇是ugrep快,一篇是rg更快。实际下来还是rg更舒心,已经删除ugrep了。

补充下:ugrep和ripgrep的主页上就有benchmark,结论是相反的 :joy: :joy: :joy: 让人不由得想起王婆卖瓜

6 个赞

目前是ugrep比rg快。rg就没更新过benchmark(

grep单文件并不慢的,但对一整个project很多文件一起搜就不行

实际使用没什么区别。。。

确实,大数据也就10来秒的差距,没什么关系

ugrep 5.0 发布了,作者也更新了性能测试成绩了

https://github.com/Genivia/ugrep-benchmarks