运行时混淆测量与time.clock()!

时间:2015-11-20 08:22:13

标签: python

the description of time.clock()

  

在Windows上,此函数返回自...以来经过的挂号秒   首先调用此函数,作为浮点数,基于   Win32函数QueryPerformanceCounter()。通常是分辨率   好于一微秒。

我发现其他人写的是这样的:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import time

def procedure():
    time.sleep(2.5)

t0 = time.clock()
procedure()
t1 = time.clock()
print "time.clock(): ", t1-t0

但我想第二次调用time.clock()时,返回值应该是自第一次调用以来的运行时间,所以它应该是这样的:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import time

def procedure():
    time.sleep(2.5)

t0 = time.clock()
procedure()
t1 = time.clock()
print "time.clock(): ", t1

谁能告诉我正确的答案?

2 个答案:

答案 0 :(得分:1)

那些会产生相同的结果,所以在这个例子中并不重要。第一个调用将返回零(或一些非常接近零的微小数字),因此t1 - t0实际上与t1相同。

但第一种方式更好,因为如果您之前在其他地方调用了time.clock(),它也会起作用。单独使用t1并不准确,除非您确定在time.clock()之前代码中的t0没有被调用。

答案 1 :(得分:0)

它们都将返回相同的结果,因为t0在Windows中将为零。

使用第一种方法使其与平台无关。您的代码也可以在Unix系统中使用。