我已经从这里尝试过这段代码:
from memory_profiler import profile
@profile
def main_func():
import random
for f in range(10):
arr1 = [random.randint(1,10) for i in range(100000)]
arr2 = [random.randint(1,10) for i in range(100000)]
arr3 = [arr1[i]+arr2[i] for i in range(100000)]
del arr1
del arr2
tot = sum(arr3)
del arr3
print(tot)
if __name__ == "__main__":
main_func()
然后当我从命令行运行时:
python -m memory_profiler example1.py
分析的结果只在整个执行之后出现,而不是在执行期间(我想看看内存消耗的演变during执行)
Filename: example1.py
Line # Mem usage Increment Occurrences Line Contents
=============================================================
3 17.9 MiB 17.9 MiB 1 @profile
4 def main_func():
5 17.9 MiB 0.0 MiB 1 import random
6
7 21.0 MiB 0.0 MiB 11 for f in range(10):
8
9 21.0 MiB 0.8 MiB 1000030 arr1 = [random.randint(1,10) for i in range(100000)]
10 21.0 MiB 1.5 MiB 1000030 arr2 = [random.randint(1,10) for i in range(100000)]
11 21.0 MiB 0.8 MiB 1000030 arr3 = [arr1[i]+arr2[i] for i in range(100000)]
12 21.0 MiB 0.0 MiB 10 del arr1
13 21.0 MiB 0.0 MiB 10 del arr2
14 21.0 MiB 0.0 MiB 10 tot = sum(arr3)
15 21.0 MiB 0.0 MiB 10 del arr3
16 21.0 MiB 0.0 MiB 10 print(tot)