如何在python中测试时启用内存分析器?

问题描述 投票:0回答:1

我在python中使用memory_profiler并分析一些代码。但我只想在测试发生时启用它,就像从测试套件中调用函数一样。我不希望在生产中运行代码时启用探查器。有没有办法做到这一点?

我对“如何在测试发生时如何启用装饰器?”这样的通用建议持开放态度。

示例代码 -

from memory_profiler import profile

@profile(precision=4)
def my_func():
    a = [1] * (10 ** 6)
    b = [2] * (2 * 10 ** 7)
    del b
    return a
python python-3.x testing decorator memory-profiling
1个回答
1
投票

装饰师,

@profile(precision=4)
def my_func():
    ...

这只是一种写作的奇特方式:

def my_func():
    ...

my_func = profile(precision=4)(my_func)

因此,如果您需要“条件装饰器”,则可以将条件应用于后者:

from memory_profiler import profile

testing = False
def my_func():
    a = [1] * (10 ** 6)
    b = [2] * (2 * 10 ** 7)
    del b
    return a

if testing:
    my_func = profile(precision=4)(my_func)
© www.soinside.com 2019 - 2024. All rights reserved.