代码优化

本文总结了Python代码性能优化技巧,包括使用mcProfile和snakeviz分析运行时间,通过ncall、tottime和cumtime理解函数调用层级,以及如何对小规模和大规模代码进行时间开销对比。
摘要由CSDN通过智能技术生成

Python性能优化技巧总结

Python代码性能优化方法总结

Java 代码性能优化

时间开销分析

项目根目录运行以下命令,可以跑script/run_snowball.py脚本,并且得出详细地时间开销。

  • 这个是跑小规模的样例句子的时间分析

    python -m cProfile -s cumulative script/run_snowball.py >time_analysis.log
    
  • 这个是跑小规模的地在所有热门帖子上的时间分析

    python -m cProfile -s cumulative script/run_snowball_large_by_one.py >large_10_time_analysis.log
    

时间分析的 输出解释:

ncall:函数运行次数

tottime: 函数的总的运行时间,减去函数中调用子函数的运行时间

第一个percall:percall = tottime / nclall

cumtime:函数及其所有子函数调整的运行时间,也就是函数开始调用到结束的时间。

第二个percall:percall = cumtime / nclall

可视化分析

  • 参考资源,https://zhuanlan.zhihu.com/p/58535923
    总的方法分三步走:

1、安装snakeviz,方法也很简单,用以下命令行搞定:

pip install snakeviz

2、运行Python代码的同时用cProfile保存运行时间数据:

python -m cProfile -o run_snowball.prof script/run_snowball.py

3、跑完之后当前文件夹里就有一个 run_snowball.prof 文件,保存了代码刚刚运行时的时间数据,用以下命令行就可以可视化分析啦:

snakeviz run_snowball.prof
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值