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类,其利用timeit和repeat函数就很容易计算了。
__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
- Python计算代码段的时间
- 计算某段代码的运行时间
- 计算代码段的运行时间
- 计算代码段所用时间
- C语言-计算某段代码的运行时间
- C语言-计算某段代码的运行时间
- 计算Python代码的运行时间
- 计算某段代码运行时间
- 计算程序运行的某一段时间
- 计算多段时间的重叠
- 计算Python的代码块或程序的运行时间
- 计算Python的代码块或程序的运行时间
- 计算Python的代码块或程序的运行时间
- Linux学习2之shell脚本计算代码段运行的时间(精确到毫秒)
- python 计算两个时间的月差代码
- 时间序列中Hurst指数的计算(python代码)
- 计算代码段运行时间(openCV版)
- ios代码段运行时间的测定
- 编程经验杂谈
- 二叉树的建立
- hdu54235423 Rikka with Tree
- Java-控制循环结构
- 【OpenCV入门教程之十七】OpenCV重映射 & SURF特征点检测合辑
- Python计算代码段的时间
- 如何使用iOS AddressBook
- 【Objective-C】类方法与对象方法
- 读书笔记之linux/unix系统编程手册(31)
- HDU 1018 Big Number(斯特林公式)
- Set Difference(所有子集的最值差)
- 黑马程序员——java基础——正则表达式
- autohotkey快捷键显示隐藏文件和文件扩展名
- UIday04_zy:容器视图控制器练习