如何计算Python程序运行多长时间?

时间:2012-06-04 14:54:12

标签: python time

有没有一种简单的方法来计算Python程序的执行时间?

澄清:整个计划

5 个答案:

答案 0 :(得分:8)

使用timeit

  

该模块提供了一种简单的方法来计算一小段Python代码。它既有命令行,也有可调用的接口。它避免了许多用于测量执行时间的常见陷阱。

你需要一个字符串中的python语句;如果你的代码中有一个main函数,你可以像这样使用它:

>>> from timeit import Timer
>>> timer = Timer('main()', 'from yourmodule import main')
>>> print timer.timeit()

第二个字符串提供设置,第一个语句的定时环境。第二个部分没有定时,用于设置舞台原样。然后第一个字符串贯穿它的步伐;默认为百万次,以获得准确的时间。

如果您需要更详细的信息,请使用python profilers

之一
  

分析器是一个程序,它描述程序的运行时性能,提供各种统计信息。

最简单的方法是使用命令行中的cProfile模块:

$ python -m cProfile yourprogram.py

答案 1 :(得分:5)

您可能希望使用内置profiler

此外,您可能希望使用以下简单的装饰器来测量函数的运行时间:

import time
def myprof(func):
    def wrapping_fun(*args):
        start = time.clock()
        result = func(*args)
        end = time.clock()
        print 'Run time of %s is %4.2fs' % (func.__name__, (end - start))
        return result
    return wrapping_fun

用法:

@myprof
def myfun():
    # function body 

答案 2 :(得分:5)

如果您使用的是Linux / Unix / POSIX兼容平台,请使用time。通过这种方式,您不会干扰脚本,也不会因为不必要的详细(适合您)分析而减慢速度。当然,您可以将它用于几乎任何事情,而不仅仅是Python脚本。

答案 3 :(得分:2)

对于代码段,请使用timeit模块。

对于整个程序,请使用cProfile模块。

答案 4 :(得分:2)

使用timeit

>>> import timeit  
>>> t = timeit.Timer(stmt="lst = ['c'] * 100")  
>>> print t.timeit()  
1.10580182076  
>>> t = timeit.Timer(stmt="lst = ['c' for x in xrange(100)]")  
>>> print t.timeit()  
7.66900897026