标签:
今天在网上搜索关于grep的用法的时候,忽然看到其他更加高效的搜索方式。当然它们应该不存在所谓的谁更好。关键的是,在不同的场合使用不同的搜索命令,可以提高效率。其实,因为自己也没有使用过其他两种方法,目前还不能妄下结论。也就是参考网上的介绍,初步体验下罢了,等过一段时间,有了自己的心得体会再说吧。
这三个搜索命令,在终端下都是可以使用命令行进行安装的。其中,grep是随着ubuntu发布的,本身就有。其他两个,我们只需要在终端操作ack ag,系统就会给我们提示安装包跟安装命令,我们只需要按着提示操作就行了。至于使用方法,还是需要以后自己多多发掘的,可以借助help命令。
现在,我主要是想根据网上的介绍,研究一下这三个命令在庞大操作目录下的执行效率。验证的环境是在~ 目录下,执行的操作是寻找所有java字符串出现的地方。验证结果如下
1.ag
执行命令
time ag java
执行结果(部分)
下载/vim-backup/vim/zhangshuli.vim/plugin/taglist.vim 413:let s:tlist_def_html_settings = ‘html;a:anchor;f:javascript function‘ 415:" java language 416:let s:tlist_def_java_settings = ‘java;p:package;c:class;i:interface;‘ . 419:" javascript language 420:let s:tlist_def_javascript_settings = ‘javascript;f:function‘ 下载/vim-backup/vim/zhangshuli.vimrc 290:autocmd BufNewFile,BufRead *.java set formatprg=astyle 324:"for java & C/C++
执行时间
real 1m14.938s
user 0m2.410s
sys 0m2.757s
2.ack
执行命令
time ack-grep java
执行结果(部分)
下载/vim-backup/vim/zhangshuli.vim/plugin/taglist.vim 413:let s:tlist_def_html_settings = ‘html;a:anchor;f:javascript function‘ 415:" java language 416:let s:tlist_def_java_settings = ‘java;p:package;c:class;i:interface;‘ . 419:" javascript language 420:let s:tlist_def_javascript_settings = ‘javascript;f:function‘ 下载/vim-backup/vim/zhangshuli.vimrc 290:autocmd BufNewFile,BufRead *.java set formatprg=astyle 324:"for java & C/C++
执行时间
real 1m6.235s
user 0m18.153s
sys 0m1.766s
3.grep
执行命令
time grep -rn java .
执行结果(部分)
./下载/vim-backup/vim/zhangshuli.vim/plugin/taglist.vim:415:" java language ./下载/vim-backup/vim/zhangshuli.vim/plugin/taglist.vim:416:let s:tlist_def_java_settings = ‘java;p:package;c:class;i:interface;‘ . ./下载/vim-backup/vim/zhangshuli.vim/plugin/taglist.vim:419:" javascript language ./下载/vim-backup/vim/zhangshuli.vim/plugin/taglist.vim:420:let s:tlist_def_javascript_settings = ‘javascript;f:function‘ ./下载/vim-backup/vim/zhangshuli.vimrc:290:autocmd BufNewFile,BufRead *.java set formatprg=astyle ./下载/vim-backup/vim/zhangshuli.vimrc:324:"for java & C/C++
执行时间
real 2m20.380s
user 0m6.482s
sys 0m3.779s
结论:
看起来ack跟ag执行效率差不多(网上别人做的实验,ag要比ack块好多,不知道为什么),而且,他们的结果显示更加清晰明了。
grep就比较慢了
以后等操作源码的时候,在对比这三个命令的优劣吧
l另外,我们还可以把ag作为vim的插件,具体的方法跟普通插件没有什么区别,你只需要把ag.vim插件对应的文件当道vim对应文件目录下就行了。下载地址
https://github.com/rking/ag.vim
标签:
原文地址:http://www.cnblogs.com/zhangshuli-1989/p/hq_15_11_15_12_10.html