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

时间:2018-01-02 13:11:26

标签: python memory-profiling

版本:0.50.0

release notes for details中。这个official documentation有一个链接,它指示我如何制作每个功能的内存使用情节。但是当我尝试在这篇文章中运行完全相同的代码时。

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

我收到此错误:

  

追踪(最近一次呼叫最后一次):

     

文件“test.py”,第3行,in       @轮廓   NameError:名称'profile'未定义

这很奇怪,因为有来自官方的报价:

  

警告

     

如果您的Python文件从memory_profiler导入配置文件导入内存探查器,则不会记录这些时间戳。注释掉导入,保留功能,然后重新运行。

因此,如果我想获得每个功能的内存使用情节,我需要注释from memory_profiler import profile,但是当我注释掉它时,会出现错误。

1 个答案:

答案 0 :(得分:1)

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