我正在使用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()
这可能吗?
答案 0 :(得分:1)
您始终可以定义第三个功能
@profile
def my_third_func():
my_func()
my_second_func()
并分析此功能。这应该产生您正在寻找的输出。
否则,如果您只对不同函数的最大内存消耗感兴趣,mprof为此提供了一个方便的可视化图。