测量运行时python中每行花费的时间

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

是否有任何工具可以测量在运行时执行时在每行代码上花费的时间,并显示结果的一些可视化,以帮助开发人员了解哪些行在执行中最耗时?

我对python这样的工具感兴趣,我正在研究pycharm。

python pycharm
3个回答
0
投票

你可以使用timeit,那;

测量小代码片段的执行时间

import timeit
start_time = timeit.default_timer()
# the line of code you want to  measure the time for
elapsed = timeit.default_timer() - start_time

import timeit
start_time = timeit.default_timer()
a = 5 + 2 / 1
b = a + 2
elapsed = timeit.default_timer() - start_time
print"Time taken: ", elapsed

OUTPUT:

timetaken


0
投票

来自优步的PyFlame会适合你的目的吗?

Pyflame是一个高性能的分析工具,可以为Python生成火焰图。 Pyflame在C ++中实现,并使用Linux ptrace(2)系统调用来收集分析信息。它可以在没有显式检测的情况下获取Python调用堆栈的快照,这意味着您可以在不修改其源代码的情况下分析程序。 Pyflame能够分析像uWSGI这样的嵌入式Python解释器。它完全支持分析多线程Python程序。


0
投票

我认为你所要求的是一种打印每一行的经过时间的方法,这是非常低效和困难的(并且是不必要的)。您不必计算像这样的行所用的时间

foo = 1

话虽这么说,你可以把计时器放在你怀疑你的代码很慢的地方。 pip上有用的模块是pytictoc

pytictoc包含一个类TicToc,它复制了MATLAB的tic和toc的功能,可以轻松地对代码段进行定时。在引擎盖下,pytictoc使用Python的timeit模块中的default_timer函数。

from pytictoc import TicToc
t.tic() #Start timer
# some of your codes here, e.g.
for ii in range(1000):
    pass
t.toc() #Time elapsed since t.tic()

经过的时间是1.35742秒。

© www.soinside.com 2019 - 2024. All rights reserved.