gpt4 book ai didi

python - 如何在 Python 中对单元测试进行时间分析?

转载 作者:太空宇宙 更新时间:2023-11-03 14:41:09 25 4
gpt4 key购买 nike

我有一个测试套件和它正在测试的代码。如果我将 from memory_profiler import profile 放在相应文件的顶部,用 @profile 装饰我想要分析的函数,并使用 python 以标准方式运行TestThing.py,我得到了很好的逐行结果。

但是 line_profiler 并没有以这种方式打包,我能够用它分析任何内容的唯一方法是使用 kernprof -l -v thing.py。如果我在单元测试中使用它,则不会运行任何测试(确实不足为奇),并且不会生成任何结果。如何以类似于 memory_profiler 的方式对我的测试及其使用的代码进行时间分析?

最佳答案

当然,你可以import line_profiler :

import line_profiler

profiler = line_profiler.LineProfiler()


@profiler
def foo():
for i in range(10):
print(i)


foo()

profiler.dump_stats('foo.lprof')

结果存储在 foo.lprof 中。

或者,你可以包装一个像装饰器一样的内存分析器,调用后打印结果:

def profile_and_show(func):
profiler = line_profiler.LineProfiler(func)
def _(*args, **kwargs):
try:
return func(*args, **kwargs)
finally:
lstats = profiler.get_stats()
line_profiler.show_text(lstats.timings, lstats.unit)
return _

关于python - 如何在 Python 中对单元测试进行时间分析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46534925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com