python re模块编译代码与非编译代码性能检测

来源:互联网 发布:好的c语言集成开发环境 编辑:程序博客网 时间:2024/05/14 19:10

首先创建1000万条测试数据,如下所示


统计一下行数



### 一:re非编译代码性能检测:

import redef 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 redef 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


总结:通过对比,编译版本优越性很大。












原创粉丝点击