python程序运行时间的几种分析方法
来源:互联网 发布:物流网络平台 编辑:程序博客网 时间:2024/05/18 18:46
在实际问题中,可能会遇到比较解决同一问题的不同方法之间的性能差异。而Python 提供了一个度量工具,为这些问题提供了直接答案。
从查阅资料的情况来看,测试运行时间的调用的模块主要有:time,timeit,datetime,profile 和pstats。其中,profile 和pstats模块提供了针对更大代码块的时间度量工具。以下主要以time,timeit,datetime为例进行说明。
1 time模块测试程序运行时间
在time模块中,计算时间的函数有两个time()和clock()。其中,time(time.time(),time返回的是UTC时间(seconds since the 00:00:00 UTC on January 1)。在很多系统,包括windows下精度很差,win32下的精度只有1/18.2秒。不过在Unix/Linux系统下,time()的精度还是很高的。)time()是计算现实世界的时间,而clock()是cpu 时钟。如果程序计算量不是很大,time()可能无法计算时间,从而导致程序测试失败。而clock()是利用cpu 时钟,时间计算精度较高。对比测试程序如下:
import time#利用time.clock()计时测试start_time1 = time.clock()i = 0string = 'ILoveFishC.com'while i < len(string): print(i, end=' ') i += 1end_time1 = time.clock()time1 = end_time1-start_time1print('\nRunning time1:', time1)#利用time.time()计时测试start_time2 = time.time()i = 0string = 'ILoveFishC.com'while i < len(string): print(i, end=' ') i += 1end_time2 = time.time()time2 = end_time2-start_time2print('\nRunning time2:', time2)输出结果为:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 Running time1: 3.2431984176475974e-050 1 2 3 4 5 6 7 8 9 10 11 12 13 Running time2: 0.0从中可以看出,time.time()用于测试运行时间是有限的,对于某些较短或运算量不大的程序是无法测量的。
2 timeit模块测试程序运行时间
- timeit 模块定义了接受两个参数的 Timer 类。两个参数都是字符串。 第一个参数是你要计时的语句或者函数。 传递给 Timer 的第二个参数是为第一个参数语句构建环境的导入语句。 从内部讲, timeit 构建起一个独立的虚拟环境, 手工地执行建立语句,然后手工地编译和执行被计时语句。
- 一旦有了 Timer 对象,最简单的事就是调用 timeit(),它接受一个参数为每个测试中调用被计时语句的次数,默认为一百万次;返回所耗费的秒数。
- Timer 对象的另一个主要方法是 repeat(), 它接受两个可选参数。 第一个参数是重复整个测试的次数,第二个参数是每个测试中调用被计时语句的次数。 两个参数都是可选的,它们的默认值分别是 3 和 1000000。 repeat() 方法返回以秒记录的每个测试循环的耗时列表。Python 有一个方便的 min 函数可以把输入的列表返回成最小值,如: min(t.repeat(3, 1000000))
- 你可以在命令行使用 timeit 模块来测试一个已存在的 Python 程序,而不需要修改代码。
from timeit import Timerprint(Timer("sum(range(100))").timeit())
输出结果为:
1.547405913377044
3 datetime模块测试程序运行时间
datetime同样是基于现实时钟的,同样是针对于运算量较大的程序,使用方法如下:
import datetimedef time_1(): begin = datetime.datetime.now() sum(range(10000000)) end = datetime.datetime.now() time = end - begin return timeprint(time_1())输出结果为:
0:00:00.470582
阅读全文
0 0
- python程序运行时间的几种分析方法
- 测量程序运行时间的几种方法
- 补充:测量程序运行时间的几种方法
- Matlab中计算程序运行时间的几种方法
- 运行Python程序的几种方式
- 运行python脚本的几种方法
- 运行python脚本的几种方法
- 运行python脚本的几种方法
- 检测Python程序运行时间和内存占用的方法
- 10种检测Python程序运行时间、CPU和内存占用的方法
- 转载:10种检测Python程序运行时间、CPU和内存占用的方法
- C++ 计算 代码运行时间的 几种方法
- C++ 计算 代码运行时间的 几种方法 .
- python 程序运行时间
- 实现程序互斥运行的几种方法
- 如何判断程序是否重复运行的几种方法
- 防止C++程序重复运行的几种方法
- 实现程序互斥运行的几种方法
- MySQL索引入门
- Android中MAT、GIMP查看哪些图片占用了内存
- 欢迎使用CSDN-markdown编辑器
- 安卓——RecyclerView的GridView模式如何合并grid格
- 关于dataTable无法使用
- python程序运行时间的几种分析方法
- 怎么理解函数式编程?
- Eclipse 中Git的使用及如何解决冲突(2017)
- php内置函数集锦
- centos 7 sudo**命令找不到
- 文本聚类
- Maven3路程(三)用Maven创建第一个web项目(1)
- Oracle中获取系统当前时间 和 进行时间间隔操作
- 表单验证 jquery.validator 和 jquery.validate 的用法