基于cProfile统计函数级的时延,生成排序列表、火焰图,可以快速定位python代码的耗时瓶颈。参考如下博文结合实操,总结为三步:
使用 cProfile 和火焰图调优 Python 程序性能 - 知乎本来想坐下来写篇 2018 年的总结,仔细想想这一年发生的事情太多了,还是写篇技术文章吧。 前几天调试程序,发现 QPS 总是卡在 20 左右上不去。开始以为是 IO 问题,就多开了些并发,然并卵,这才想到可能是 CPU …https://zhuanlan.zhihu.com/p/537609221. 生成prof文件
mport cProfile, pstats, io
pr = cProfile.Profile()
pr.enable()
#start your code
#end your code
pr.disable()
pr.dump("./test.prof")
2. 统计时延分布列表:
import pstats
profiler = pstats.Stats('test.prof')
profiler.strip_dirs()
profiler.sort_stats('cumulative')
profiler.print_stats()
效果如下图:
3. 生成火焰图
安装工具:pip3 install flameprof
运行:flameprof test.prof > test.svg