您的位置:首页 > 编程语言 > Python开发

Python与sed,grep文本查找效率对比小测

2013-09-17 15:30 543 查看
Gnu awk作者在FreeBSD邮件列表中回答”GNU grep为什么比BSD grep要快“,提到了用到了Boyer-Moore算法,虽然不知道是什么,但感觉很厉害的样子~我猜想grep有多快呢?

所以想比较下下python,sed与grep:

测试文本:20w行,21M大

python普通正则匹配:
#!/usr/bin/python3 
import re 
f=open('/tmp/test.txt') 
for line in f: 
        match=re.findall('^This.*want',line) 
        if match != []: 
                print(match)


结果:



试下编译的正则试试:
#!/usr/bin/python3 
import re 
f=open('/tmp/test.txt') 
re_obj=re.compile('^This.*want') 
for line in f: 
match=re_obj.findall(line) 
if match != []: 
print(match)


结果快了1倍:


试试sed:



快了1个数量级!

最后试试grep:


果然grep是查找最专业的!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: