使用memory_profiler模块
memory_profiler模块用来基于逐行测量代码的内存使用。使用这个模块会让代码运行的更慢。
安装方法如下:
pip install memory_profiler
另外,建议安装psutil包,这样memory_profile会运行的快一点:
pip install psutil
使用@profile()装饰器来标识需要追踪的函数,例如:
from memory_profiler import profile
@profile
def sqrt10():
accuracy = 1e-8
left = 3
right = 4
mid = left + (right - left) / 2
while right-left>accuracy:
if mid*mid>10:
right = mid
else:
left = mid
mid = left + (right-left)/2
return mid
sqrt10()
运行该代码后结果如下:
Filename: test.py
Line # Mem usage Increment Occurences Line Contents
============================================================
4 39.7 MiB 39.7 MiB 1 @profile
5 def sqrt10():
6 39.7 MiB 0.0 MiB 1 accuracy = 1e-8
7 39.7 MiB 0.0 MiB 1 left = 3
8 39.7 MiB 0.0 MiB 1 right = 4
9 39.7 MiB 0.0 MiB 1 mid = (left+right)/2
10 39.7 MiB 0.0 MiB 28 while right-left>accuracy:
11 39.7 MiB 0.0 MiB 27 if mid*mid>10:
12 39.7 MiB 0.0 MiB 16 right = mid
13 else:
14 39.7 MiB 0.0 MiB 11 left = mid
15 39.7 MiB 0.0 MiB 27 mid = (left+right)/2
16 39.7 MiB 0.0 MiB 1 return mid