39

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

START MY TIMER
code for application
more code
more code
etc
STOP MY TIMER

OUTPUT ELAPSED TIME 在定时器的启动和停止之间执行上述代码。想法?

4

7 回答 7

69

最简单的方法是放置:

import time
start_time = time.time()

在开始和

print "My program took", time.time() - start_time, "to run"

在最后。

于 2012-09-16T02:34:22.360 回答
20

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

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

timer()time.perf_counter()在 Python 3.3 和time.clock()/time.time()Windows/其他平台上的旧版本中是 a 。

于 2012-09-16T02:46:10.770 回答
10

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

$ time python script.py
real    0m0.043s
user    0m0.027s
sys     0m0.013s

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

import time

start_time = time.time()

# ...

print time.time() - start_time, 's'
于 2012-09-16T02:35:46.700 回答
9

您可以使用系统命令time

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

real    0m0.015s
user    0m0.008s
sys     0m0.007s
于 2012-09-16T02:36:33.550 回答
6

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

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

import time
start = time.time()

示例代码从这里开始

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

示例代码到此结束

end = time.time()
print('Time taken for fun program: ', end - start)

希望这永远清楚。

于 2019-05-21T09:29:37.727 回答
0

您不能在开始和结束时获取当前系统时间,然后从最终时间中减去开始时间吗?

于 2012-09-16T02:33:37.917 回答
0
import time as t
def TimeTakenDecorator(func):
    def wraper(*args,**kwargs):
        start = t.time()
        func(*args,**kwargs)
        end = t.time()
        print('Time taken for fun program: ', end - start)
    return wraper

@TimeTakenDecorator
def hello(s):
    for _ in range(100000000):
        pass
    print(s)
    
hello("test")
于 2022-02-02T10:40:00.540 回答