是否有任何工具可以测量在运行时执行时在每行代码上花费的时间,并显示结果的一些可视化,以帮助开发人员了解哪些行在执行中最耗时?
我对python这样的工具感兴趣,我正在研究pycharm。
你可以使用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:
来自优步的PyFlame会适合你的目的吗?
Pyflame是一个高性能的分析工具,可以为Python生成火焰图。 Pyflame在C ++中实现,并使用Linux ptrace(2)系统调用来收集分析信息。它可以在没有显式检测的情况下获取Python调用堆栈的快照,这意味着您可以在不修改其源代码的情况下分析程序。 Pyflame能够分析像uWSGI这样的嵌入式Python解释器。它完全支持分析多线程Python程序。
我认为你所要求的是一种打印每一行的经过时间的方法,这是非常低效和困难的(并且是不必要的)。您不必计算像这样的行所用的时间
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秒。