首页 > 解决方案 > 使用 memory_profiler 中的 %mprun 时未测量内存使用情况

问题描述

我正在尝试测量以下用于分解整数的函数的内存使用情况。

def trialDiv(n):
a = []
f = 2
while n != 1:
    if n % f == 0:
        a.append(f)
        n = n / f
    else:
        f = f + 1
return a

我正在使用 jupyter notebook 并使用 memory_profiler。但是,每当我尝试通过运行来测量 trialDiv 的内存使用情况时

%mprun -f trialDiv trialDiv(n)

我得到以下输出。

Line # Mem 使用增量行内容

 9     89.6 MiB     89.6 MiB   def trialDiv(n):
10     89.6 MiB      0.0 MiB       a = []
11     89.6 MiB      0.0 MiB       f = 2
12     89.6 MiB      0.0 MiB       while n != 1:
13     89.6 MiB      0.0 MiB           if n % f == 0:
14     89.6 MiB      0.0 MiB               a.append(f)
15     89.6 MiB      0.0 MiB               n = n / f
16                                     else:
17     89.6 MiB      0.0 MiB               f = f + 1
18     89.6 MiB      0.0 MiB       return a

无论传递给 trialDiv 的整数大小如何,这都是输出。我觉得该功能甚至可能根本没有运行,或者我错误地使用了 %mprun。任何意见,将不胜感激。

标签: pythonjupyter-notebookmemory-profiling

解决方案


推荐阅读