py-spy
安装
>>> pip3 install py-spy
功能
- record: 记录程序profile文件并生成火焰图
- top: 实时显示程序运行过程中最耗时的函数调用,类似top命令
- dump:显示每个线程的调用栈
具体使用方法可以参考https://github.com/benfred/py-spy
record在MacBook上没有成功,虽然执行都正常,但生成的svg文件用浏览器打开如下图所示:
docker中使用py-spy需要在生成容器时加入‘–cap-add SYS_PTRACE’
具体参考:https://github.com/benfred/py-spy#how-do-i-run-py-spy-in-docker
memory-profile
安装
>>> pip3 install matplotlib
>>> pip3 install memory-profile
功能
- 代码逐行内存监控
- 基于时间的内存监控
具体使用参考:https://github.com/pythonprofilers/memory_profiler
MacBook上没有实现mprof和@profile装饰器一起使用实现基于时间的代码逐行监控的功能。
下图是多进程的内存监控
但是mprof记录的各进程内存占用和top显示的内存占用貌似不太一致,这点还需要进一步分析