Memory_profiler是一个Python模块,可以监视一个进程的内存消耗,甚至可以一行一行的分析Python程序的内存消耗。它纯粹是由Python实现,用户可选psutil模块(强烈推荐)作为依赖。
示例
用@profile
修饰你需要监视的函数,这里my_func
函数分配列表a和b,然后删除b。
1 2 3 4 5 6 7 8 9
| @profile def my_func(): a = [1] * (10 ** 6) b = [2] * (2 * 10 ** 7) del b return a
if __name__ == '__main__': my_func()
|
运行脚本时需传入-m memory_profiler
参数
1
| python -m memory_profiler example.py
|
以上命令输出如下
1 2 3 4 5 6 7 8
| Line ============================================== 3 @profile 4 5.97 MB 0.00 MB def my_func(): 5 13.61 MB 7.64 MB a = [1] * (10 ** 6) 6 166.20 MB 152.59 MB b = [2] * (2 * 10 ** 7) 7 13.61 MB -152.59 MB del b 8 13.61 MB 0.00 MB return a
|