提高python性能_提高Python代码性能

尽管有缓存,调用re.compile的开销是巨大的。使用is_wanted_line = re.compile(r"DramBaseAddress\d+").search

for i, line in enumerate(open('rndcfg.cfg')):

if is_wanted_line(line):

j += 1

相反。在

更进一步,你可以

^{pr2}$

以进一步减少开销。在

您也可以考虑自己进行缓冲:key = b"DramBaseAddress"

is_wanted_line = re.compile(rb"DramBaseAddress\d+").search

with open("rndcfg.cfg", "rb") as file:

rest = b""

for chunk in iter(lambda: file.read(32768), b""):

i += chunk.count(b"\n")

chunk, _, rest = (rest + chunk).rpartition(b"\n")

if key in rest and is_wanted_line(chunk):

j += 1

if key in rest and is_wanted_line(rest):

j += 1

这样可以减少行分割和编码开销。(这并不完全相同,因为它不考虑每个块有多个实例。这样的行为相对来说比较简单,但在您的案例中可能并不严格需要。)

这有点重,但是如果删除i += chunk.count(b"\n"),它的速度是Perl-8x的三倍!在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值