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

首先创建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


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












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值