2024-05-17 07:15:41 发布
网友
我有一个视图,对于每一个语句,我都在其中放一个time.time()。例如:
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将运行附加了探查器的程序
python
很好的一点是,探查器可以跟踪源自顶级调用的所有方法调用、调用函数的次数、平均性能等
通过在顶部调用探查器,您可以简单地忽略中间的所有时间跟踪:只需删除顶部的跟踪语句
此外,您还可以配置配置文件,例如将结果写入单独的文件,以便在忘记删除配置文件器语句的情况下,不会写入输出通道
这个talk at PyCon演示了如何分析获得的结果
无论如何,使用计时器通常不是衡量性能的好方法
为了提高程序性能,通常使用profiler:
您可以通过以下方式运行此操作:
或者,您可以决定删除代码中的所有计时器/配置文件语句,并使用以下命令运行:
在这种情况下
python
将运行附加了探查器的程序很好的一点是,探查器可以跟踪源自顶级调用的所有方法调用、调用函数的次数、平均性能等
通过在顶部调用探查器,您可以简单地忽略中间的所有时间跟踪:只需删除顶部的跟踪语句
此外,您还可以配置配置文件,例如将结果写入单独的文件,以便在忘记删除配置文件器语句的情况下,不会写入输出通道
这个talk at PyCon演示了如何分析获得的结果
相关问题 更多 >
编程相关推荐