memory_profiler仅显示功能级别结果

时间:2016-08-09 08:09:10

标签: python-2.7 memory-profiling

我正在使用memory_profiler for python,如下所示:

from memory_profiler import profile

@profile
def my_func():
   ...

正常运行。

输出看起来像这样(取自文档):

Line #    Mem usage  Increment   Line Contents
==============================================
     3                           @profile
     4      5.97 MB    0.00 MB   def my_func():
     5     13.61 MB    7.64 MB       a = [1] * (10 ** 6)
     6    166.20 MB  152.59 MB       b = [2] * (2 * 10 ** 7)
     7     13.61 MB -152.59 MB       del b
     8     13.61 MB    0.00 MB       return a

虽然我希望将其缩短为功能级别并且看起来类似于:

Line #    Mem usage  Increment    Max         Line Contents
==============================================================
     4      13.61 MB    7.64 MB   166.20 MB     my_func()
     20     23.26 MB    9.65 MB   56.20 MB     my_second_func()

这可能吗?

1 个答案:

答案 0 :(得分:1)

您始终可以定义第三个功能

@profile
def my_third_func():
    my_func()
    my_second_func()

并分析此功能。这应该产生您正在寻找的输出。

否则,如果您只对不同函数的最大内存消耗感兴趣,mprof为此提供了一个方便的可视化图。