我的Python应用程序运行多长时间?

use*_*111 26 python timer

基本上,我希望能够输出运行应用程序的已用时间.我想我需要使用某种timeit函数,但我不确定是哪一个.我正在寻找类似以下的东西......

START MY TIMER
code for application
more code
more code
etc
STOP MY TIMER
Run Code Online (Sandbox Code Playgroud)

OUTPUT ELAPSED TIME在计时器的启动和停止之间执行上述代码.思考?

Dav*_*son 39

最简单的方法是:

import time
start_time = time.time()
Run Code Online (Sandbox Code Playgroud)

在开始和

print "My program took", time.time() - start_time, "to run"
Run Code Online (Sandbox Code Playgroud)

在末尾.


jfs*_*jfs 16

要在不同平台上获得最佳结果:

from timeit import default_timer as timer

# START MY TIMER
start = timer()
code for application
more code
more code
etc
# STOP MY TIMER
elapsed_time = timer() - start # in seconds
Run Code Online (Sandbox Code Playgroud)

timer()是一个time.perf_counter()在Python 3.3和time.clock()/time.time()相应的Windows /其他平台上的旧版本.


Ble*_*der 10

如果您运行的是Mac OS X或Linux,只需使用该time实用程序:

$ time python script.py
real    0m0.043s
user    0m0.027s
sys     0m0.013s
Run Code Online (Sandbox Code Playgroud)

如果没有,请使用time模块:

import time

start_time = time.time()

# ...

print time.time() - start_time, 's'
Run Code Online (Sandbox Code Playgroud)


AJ.*_*AJ. 8

您可以使用系统命令time:

foo@foo:~# time python test.py
hello world!

real    0m0.015s
user    0m0.008s
sys     0m0.007s
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢这个,除了在计时片段的情况下,这将包括您不想测试的导入和初始化的任何“开销”。 (2认同)

deb*_*e4u 6

在程序开始时取系统当前时间,并在结束时再次取程序结束时间,最后减去两个时间。

下面的代码描述了我们如何执行上述操作:

import time
start = time.time()
Run Code Online (Sandbox Code Playgroud)

示例代码从这里开始

cnt = 1
for fun in range(10**11):
    if (fun % 10**9 == 0):
        print(cnt, fun)
        cnt += 1
Run Code Online (Sandbox Code Playgroud)

示例代码到此结束

end = time.time()
print('Time taken for fun program: ', end - start)
Run Code Online (Sandbox Code Playgroud)

希望这永远是清楚的。


Pat*_*ney 0

难道你不能只获取开始和结束时的当前系统时间,然后从最终时间中减去开始时间吗?