timeit 模块: 测试时间性能
来源:互联网 发布:word2016 mac破解版 编辑:程序博客网 时间:2024/05/16 18:28
起因:为什么是模块timeit ,而不用time模块/timing模块?
模块timeit (而不用time模块/timing模块)
time.clock() 精度高,还是使用 time.time() 精度更高,要视乎所在的平台来决定。总概来讲,在 Unix 系统中,建议使用 time.time(),在 Windows 系统中,建议使用 time.clock()。
python提供timeit.default_timer()默认基于平台选择精度高的记录时间的方法。
两个最重要的计时方法:
1. timeit
timeit.timeit(stmt='pass', setup='pass', timer=<default timer>, number=1000000)
2. repeat
timeit.repeat(stmt='pass', setup='pass', timer=<default timer>, repeat=3, number=1000000)
stmt='pass':要测试时间的语句, 比如“"test()”
setup='pass':测试语句需要的前提环境:“from __main__ import test”
timer=<default timer>:选择时间计时器,默认是timeit.default_timer();
repeat=3:需要timieit的次数;
number=1000000:测试语句需要循环的次数(算timieit一次);
示例:
官方样例:
>>> importtimeit
>>> timeit.timeit('"-".join(str(n) for n in range(100))', number=10000)
0.8187260627746582
>>> timeit.timeit('"-".join([str(n) for n in range(100)])', number=10000)
0.7288308143615723
>>> timeit.timeit('"-".join(map(str, range(100)))', number=10000)
0.5858950614929199
自己尝试:1+...+100的程序,
执行程序
输出结果
timeit.timeit("sum(range(1,100001))", number=1000)
3.5515526547816165
timeit.repeat("sum(range(1,100001))", repeat=5, number=1000)
[3.55720355964975, 3.5583667799910472, 3.7193515877468855, 3.710453440883967, 3.720163398245589]
备注:
注释1:模块timeit提供的方法,官方也提供同名类timeit以及方法。
官方网址:https://docs.python.org/2/library/timeit.html
注释2:timeit.default_timer()是自然时间,不是CPU时间。测量CPU时间,比较精准,通过比较程序运行前后的CPU时间差,得出程序运行的CPU时间。测量自然/真实/时钟时间,也就是通常的类似掐表计时。
- timeit 模块: 测试时间性能
- Python时间性能测量 time.clock() time.time() timeit.timeit()
- timeit 模块
- 使用timeit测试python语句执行的时间
- 使用 timeit 模块
- Python timeit模块
- 使用 timeit 模块
- python--timeit模块
- python -- 性能度量 timeit
- python中timeit模块用法
- 13、Python time&timeit 模块
- 计算运行时间工具timeit
- timeit
- 测试时间模块控制
- Python的7种性能测试工具:timeit、profile、cProfile、line_profiler、memory_profiler、PyCharm图形化性能测试工具、objgraph
- Python基础——timeit模块
- 014讲模块time,timeit详解
- Python的计时timeit模块概述
- 计算机视觉---2.1---卷积与模板操作
- R语言Data Frame数据框常用操作
- git 删除远程分支
- nginx-cache 总结
- Android开发用真机调试遇到的问题
- timeit 模块: 测试时间性能
- 第十二周项目一: 教师兼干部类
- App开发日报 2015-05-20 如何仅凭官方文档零基础学习Swift开发
- 【黄斤德】午评:5月21现货黄金、现货白银欧盘解套策略
- linux下删除某个文件
- 备份上个月的日志
- Centos下R语言的出错及解决(持续更新中)
- 关于酒店管理系统的使用问题
- 【WebService学习过程记录(二)】Java6+Servlet+tomcat发布HelloWord