所以最近我在搜索执行快速搜索的命令行工具,我偶然发现了很多。据我所知,据说Ag比grep,ack和sift更快。 grep是最慢的。
现在我在一个文件上有300.000个字符串,我试图找到哪些字符串有一个特定的子字符串并将它们返回。
time grep 'substring' file.txt
real 0m0.030s
user 0m0.009s
sys 0m0.008s
。
time ag 'substring' file.txt ----> 5 secs
real 0m0.083s
user 0m0.038s
sys 0m0.014s
我做错了什么,或者ag没有按照我试图使用它的方式使用?
答案 0 :(得分:0)
Grep真的很有效率。但是,即使Ag在一个系统上运行速度更快,也可归结为您正在使用的软件包和分发版。
如果您在grep上使用64位(在Cygwin软件包上),则可以在系统上使用更多内存。可能是Ag有一个使用较少资源的包。
我建议使用parallel
命令,该命令允许您指定每个核心使用多少进程并加快速度。