查看程序时间的瓶颈咋哪里,好提升效率。
cprofile
配合snakeviz一起用
python -m cProfile -o run.prof myscript.py # to generate profile data
snakeviz run.prof # to view profile results
scalene
https://github.com/plasma-umass/scalenegithub.com/plasma-umass/scalene
pip install -U scalene
scalene your_prog.py
scalene --cpu your_prog.py # only profile CPU
scalene --cpu --gpu your_prog.py # only profile CPU and GPU
scalene --cpu --gpu --memory your_prog.py # profile everything (same as no options)
也可以作为decorator在function上用
# do not import profile!
@profile
def slow_function():
import time
time.sleep(3)
速度和准确性上好于其它同类

添加图片注释,不超过 140 字(可选)
scalene的output是在当前目录下的也给profile.html
打开之后,长这样:

添加图片注释,不超过 140 字(可选)
内存
- Python 内存(绿色深色部分) 由 Python 对象分配 的内存,比如 list、dict、str、numpy 数组等 这些是通过 Python 的内存管理器(pymalloc)或直接 malloc 出来的 Python 对象
- Native 内存(绿色浅色部分) 不是 Python 自己分配的,而是底层 C/C++ 扩展 或外部库分配的 典型例子:NumPy / Pandas 在 C 层分配的大数组
API 优化
输入api key,可以点击func前爆炸的符号来优化代码。
排序
点一下column name,就可以排序。下图是按照时间排序。

添加图片注释,不超过 140 字(可选)