首先创建1000万条测试数据,如下所示
统计一下行数
### 一:re非编译代码性能检测:
import re
def run_re():
pattern='12'
infile=open('cs.txt','r')
matchcount=0
lines=0
for line in infile:
match=re.search(pattern, line)
if match:
matchcount+=1
lines+=1
return(lines,matchcount)
if __name__=="__main__":
lines,matchcount=run_re()
print lines
print matchcount
用ipython的timeit工具检测花费时间
timeit工具执行一段代码数次,然后报告最佳运行所花费的时间。
从上可以看出,运行10次,最佳运行花费18.1s
###二:re编译代码性能检测
import re
def run_re():
pattern='12'
re_obj=re.compile(pattern)
infile=open('cs.txt','r')
matchcount=0
lines=0
for line in infile:
match=re._obj.search(line)
if match:
matchcount+=1
lines+=1
return(lines,matchcount)
if __name__=="__main__":
lines,matchcount=run_re()
print lines
print matchcount
同样用timeit检测花费时间:
从上可以看出,运行10次,最佳运行花费5.23s
总结:通过对比,编译版本优越性很大。