內存分析
- 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)