gpt4 book ai didi

python - 调试语句级性能的正确方法

转载 作者:行者123 更新时间:2023-12-01 04:50:05 24 4
gpt4 key购买 nike

我有一个 View ,对于每个语句,我都在其中放入一个 time.time() 。例如:

t1 = time.time()
worker_stats = get_worker_stats(worker_id)
t2 = time.time()

在程序结束时,我给出每段代码的结果。例如,对于上面的内容:

WorkerStats = t2 - t1

这对于短期解决方案来说效果很好,但对于生产来说,它在代码中不断散布着这些 time.time() 语句。是否有更好的方法来跟踪语句性能,或者这是唯一的方法?

最佳答案

无论如何,使用计时器通常都不是衡量性能的好方法。

为了提高程序性能,通常使用 profiler :

您可以将其运行为:

import cProfile

cProfile.run('get_worker_stats(worker_id)')

或者您可以决定删除代码中的所有计时器/配置文件语句,并使用以下命令运行它:

python -m cProfile program.py

在这种情况下,python 将运行带有附加分析器的程序。

好处是探查器可以跟踪源自顶层调用的所有方法调用、调用函数的次数、平均性能等。

通过调用顶部的探查器,您可以简单地省略中间的所有时间跟踪:只需删除顶部的跟踪语句即可。

此外,您还可以配置配置文件,例如将结果写入单独的文件,这样,如果您忘记删除分析器语句,您就不会写入输出 channel 。

这个talk at PyCon演示如何分析获得的结果。

关于python - 调试语句级性能的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28652485/

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