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

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

2012-02-16 10:59 465 查看
首先创建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

总结:通过对比,编译版本优越性很大。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: