内存分析
- guppy:分析整个程序中每种数据类型占用的内存情况;(https://svenil.github.io/guppy-pe/ ,https://smira.ru /wp-content/uploads/2011/08/heapy.html)
- memory_profiler:逐行分析一个函数的内存使用情况;(https://pypi.org/project/memory-profiler/)
- objgraph:分析整个程序中对象被引用的情况,用于分析内存泄漏;(https://mg.pov.lt/objgraph/index.html)
耗时分析
- cProfile:可以分析整个程序中每个函数消耗了多少时间,以及这些函数被调用了多少次;
- line_profiler:可以给出一个函数中执行每行代码所需占用的CPU时间;
- py-spy:允许在不重启和修改源代码的情况下,可视化正在运行的Python程序的调用栈、时间消耗等;(比pyflame更好用,支持Python3.7+)
- pyflame:允许在不重启和修改源代码的情况下,直接用命令行对你的Python进程进行profile,拿到结果看图表就好;
参考
- https://blog.csdn.net/kelindame/article/details/73008487
- https://blog.csdn.net/meccaendless/article/details/79701726
- 用pyflame来做python程序的性能分析(https://kyle.ai/blog/6347.html)
- python程序性能分析工具py-spy(https://kyle.ai/blog/6719.html)
- 如何读懂火焰图?(http://www.ruanyifeng.com/blog/2017/09/flame-graph.html)
- Python性能调试工具py-spy使用(https://hazirguo.github.io/articles/2018/py_spy_use_guide.html)
- python内存泄漏分析工具:guppy/heapy(https://kyle.ai/blog/6077.html)