我在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
答案 0 :(得分: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)