使用time.clock()与time.time()对Python程序进行计时

时间:2016-09-03 15:31:15

标签: python python-3.x benchmarking

我是Python编程的新手。我今天早上开始研究Project Euler,我想知道执行我的解决方案需要多长时间。我在网上搜索了我的

解决方案
import time

class Solution(object):
    def fibonacci(self,limit):
        sum = 0
        current = 1
        next = 2
        while(current <= limit):
            if  current % 2==0:
                sum += current
            current, next = next, current + next

        return  str(sum)

if __name__ == "__main__":
    start = time.clock()
    solution = Solution().fibonacci(4000000)
    elapsed = time.clock()-start
    print("Solution: %s"%(solution))
    print("Time: %s seconds"%(elapsed))

输出:
解决方案:4613732
时间:2.006085436846098e-05秒

import time

class Solution(object):
    def fibonacci(self,limit):
        sum = 0
        current = 1
        next = 2
        while(current <= limit):
            if  current % 2==0:
                sum += current
            current, next = next, current + next

        return  str(sum)

if __name__ == "__main__":
    start = time.time()
    solution = Solution().fibonacci(4000000)
    elapsed = time.time()-start
    print("Solution: %s"%(solution))
    print("Time: %s seconds"%(elapsed))

输出:
解决方案:4613732
时间:0.0秒

我的问题是

  1. 上面计算的时间是否正确?
  2. time.time()与time.clock()之间有什么区别?如果我使用time.time(),我得到0.0作为时间。

1 个答案:

答案 0 :(得分:2)

在Python time module中,time.clock()测量自第一次调用函数以来的时间(以秒为单位),time.time()测量自1970年1月1日以来的时间(以秒为单位)。

time.clock()通常更精确,所以我建议使用这个。这就是为什么你在第一个例子中得到微小的结果,在第二个例子中向下舍入为零的原因。