Python计算代码段的时间

来源:互联网 发布:菜鸟云打印控件 mac 编辑:程序博客网 时间:2024/05/17 04:27

Python计算程序段时间

在百度知道里看到“Python里怎么计算程序段执行的时间”,我也好奇,从C语言的思维,我首先想到是time,我就百度time,发现Python自带的time模块,里面有两个函数可以粗略的计算:time()和clock()函数

1、Time函数返回的是当前戳函数,所以只需只要

<span style="font-family:Microsoft YaHei;font-size:14px;">import timedef fun(x):   sum = 0;    i= 1;   while(i < x):       sum += i       i += 1return sum x1 = time.time()fun(10000)x2 = time.time()print x2-x1</span>

2、clock函数比较直接, 该函数有两个功能:
 
在第一次调用的时候,返回的是程序运行的实际时间;
 
以第二次之后的调用,返回的是自第一次调用后,到这次调用的时间间隔

如下例子

<span style="font-family:Microsoft YaHei;font-size:14px;">import timeif __name__ == '__main__':   time.sleep(1)   print "clock1:%s" % time.clock()   time.sleep(1)   print "clock2:%s" % time.clock()   time.sleep(1)print"clock3:%s" % time.clock()</span>


输出:
clock1:3.35238137808e-006

clock2:1.00004944763
clock3:2.00012040636

 

查看上面的结果,会发现上面两种方法,如果程序段运行时间很短的话,就会计算不准确的。Python还是比较人性化的,知道我们经常需要计算程序段的时间来判断效率,所以它还有个timeit模块,这个模块可以说是专门为了计算程序段的时间来的,你在命令行中写下:help(timeit)就会发现,此模块很简单,就一个Timer类,初始化好Timer类,其利用timeitrepeat函数就很容易计算了。

__init__(stmt="pass",setup="pass", timer=default_timer)

      定义了接受两个参数的 Timer 类。两个参数都是字符串。第一个参数是你要计时的语句,这里你计时的是以'Pilgrim'参数调用 Soundex 函数。传递给 Timer 的第二个参数是为第一个参数语句构建环境的导入语句。stmt是执行语句,setup 是导入执行语句环境)

print_exc(file=None)

timeit(number=default_number)

    返回测试所用秒数,number是每个测试中调用被计时语句的次数

repeat(repeat=default_repeat, number=default_number)

    返回测试所用秒数列表,repeat是重复整个测试的次数,number 是每个测试中执行语句的次数

只要有了Timer对象,就很容易计算Timer的时间了,如下:

>>>import timeit

#执行命令

>>>t2 = timeit.Timer('x=range(1000)')

#显示时间

>>>t2.timeit()

10.620039563513103

#执行命令

>>>t1 = timeit.Timer('sum(x)', 'x = (i for i in range(1000))')

#显示时间

>>>t1.timeit()

0.1881566039438201

0 0
原创粉丝点击