性能调优就是打印出来每个函数的耗时。用一个图来表示的话,叫做火焰图。flamegraph。
time
最简单的手工方法就是用time()函数
from time import time
program_start_time = time()
xxx
program_end_time = time()
print("total time used: ", program_end_time - program_start_time)
cProfile
cProfile是python的一个官方工具,用来直接生成火焰图。实际上内部也是不断调用time()来实现的。
cProfile生成的是一个二进制的profile文件,后续可以用snakeviz来查看火焰图。
pip install snakeviz
在命令行中调用
python -m cProfile -o xxx.profile .\main.py
snakeviz xxx.profile
结果展示