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
(已注释掉导入),它似乎对我有用,但只生成文件输出,根本不写入标准输出.
版本: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
(已注释掉导入),它似乎对我有用,但只生成文件输出,根本不写入标准输出.