line_profiler增强,运行脚本无需删除@profile装饰器

line_profiler是Python的一款代码行级性能分析工具,提供逐行代码的执行时间统计,便于程序优化。通常需要在函数前添加@profile装饰器,但这会阻止脚本直接运行。文章介绍了如何在不删除@profile装饰器的情况下,既能使用line_profiler,又能正常运行和调试程序,方法源自《High Performance Python》一书。
摘要由CSDN通过智能技术生成

什么是line_profiler

用惯了MATLAB的人转移到Python上,优化程序的第一步应该就是找profile。Python的确内置profiler,有两种:profile和cProfile,一个是Python写的,另一个是用C写的扩展。自带的profiler输出结果较为完善,各个内建函数也都包含在内,但对于不那么熟悉Python内建函数的新手来讲,通过自带profiler去优化一段程序很难完成。

有一些现成的第三方包给内置profiler的输出文件做了扩展,可将其调用过程展示在GUI里,但无论如何还是没有每行代码单独统计时间来的方便。就算知道某个内建函数费时较多,但为了优化程序,还需找出调用此内建函数的语句,所以很有可能出现一个你的函数调用了一个内建函数,而它又调用了另一个内建函数,这就使得整个程序优化过程十分繁琐。

line_profiler很好的解决了这个问题,其输出结果就如同MATLAB中profile的输出结果,按照每行代码统计耗时以及调用次数。可从github上下载,其页面上有很详细的使用说明,这里就不介绍其使用方法。下载页面:

https://github.com/rkern/line_profiler

line_profiler增强

学会使用line_profiler后,发现其优化方式方便是方便,但对于函数很多的大段程序,或者对于包含很多方法的自建类的优化就没那么方便了。因为要使用line_profiler,需要再你想要time的函数前一行增加

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值