memory_profiler:如何绘制每个函数的内存使用情况

memory_profiler: how to plot per-function memory usage

版本:0.50.0

official documentation. there is a link to this blog 中指导我如何绘制每个函数的内存使用情况图。但是当我尝试 运行 这个 post 中的确切代码时。

test1.py

import time

@profile
def test1():
    n = 10000
    a = [1] * n
    time.sleep(1)
    return a

@profile
def test2():
    n = 100000
    b = [1] * n
    time.sleep(1)
    return b

if __name__ == "__main__":
    test1()
    test2()

命令是:

mprof run test1.py

我收到这个错误:

Traceback (most recent call last):

File "test.py", line 3, in @profile NameError: name 'profile' is not defined

这很奇怪,因为有官方的引述:

Warning

If your Python file imports the memory profiler from memory_profiler import profile these timestamps will not be recorded. Comment out the import, leave your functions decorated, and re-run.

所以如果我想要每个函数的内存使用图,我需要注释掉from memory_profiler import profile,但是当我注释掉它时,出现了错误。

文档不是最新的,尝试使用 mprof run --python python3 test1.py(已注释掉导入),它似乎对我有用,但只生成文件输出,根本不写入标准输出.