python运行时间的几种方法


Posted in Python onJune 17, 2016

最早见过手写的,类似于下面这种:

import datetime
 def time_1():

 begin = datetime.datetime.now()

 sum = 0

 for i in xrange(10000000):

  sum = sum + i

 end = datetime.datetime.now()

 return end-begin
print time_1()

输出如下: 

➜  Python python time_1.py

0:00:00.280797

另外一种方法是使用timeit模块,使用方法如下:

In [5]: import timeit
In [6]: timeit.timeit("sum(range(100))")
Out[6]: 1.2272648811340332

还可以在命令行上使用这种timeit模块,如下:

➜ Python python -m timeit -s"import time_1 as t" "t.time_1()"
0:00:00.282044
10 loops, best of 3: 279 msec per loop

注意:timeit模块会多次运行程序以获得更精确的时间,所以需要避免重复执行带来的影响。比方说x.sort()这种操作,因为第一次执行之后,后边已经是排好的了,准确性就收到了影响。
 还有一种方法是使用cProfile模块,代码如下,名字为time_1.py:

import datetime

 def time_1():

 begin = datetime.datetime.now()

 sum = 0

 for i in xrange(10000000):

  sum = sum + i

 end = datetime.datetime.now()

 return end-begin



 if __name__ == '__main__':

 print time_1()

import cProfile

 cProfile.run('time_1()')
 

运行程序结果如下: 

➜ Python python time_1.py

0:00:00.282828

  2 function calls in 0.000 seconds 

 Ordered by: standard name

 ncalls tottime percall cumtime percall filename:lineno(function)

 1 0.000 0.000 0.000 0.000 <string>:1(<module>)

 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}

Traceback (most recent call last):

 File "time_1.py", line 15, in <module>

 cProfile.run('main()')

 File "/usr/lib/python2.7/cProfile.py", line 29, in run

 prof = prof.run(statement)

 File "/usr/lib/python2.7/cProfile.py", line 135, in run

 return self.runctx(cmd, dict, dict)

 File "/usr/lib/python2.7/cProfile.py", line 140, in runctx

 exec cmd in globals, locals

 File "<string>", line 1, in <module>

NameError: name 'main' is not defined

➜ Python vi time_1.py

➜ Python python time_1.py

0:00:00.284642

  5 function calls in 0.281 seconds

 Ordered by: standard name

 ncalls tottime percall cumtime percall filename:lineno(function)

 1 0.000 0.000 0.281 0.281 <string>:1(<module>)

 1 0.281 0.281 0.281 0.281 time_1.py:3(time_1)

 2 0.000 0.000 0.000 0.000 {built-in method now}

 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}

一开始代码里最后一行写的是cProfile.run('main()'),提示没有main(),将main()改成函数名字就可以了。

以上就是本文的全部内容,希望对大家学习python程序设计有所帮助。

Python 相关文章推荐
使用Python写个小监控
Jan 27 Python
PyQt5每天必学之切换按钮
Aug 20 Python
Python实现查找字符串数组最长公共前缀示例
Mar 27 Python
python如何制作缩略图
Apr 30 Python
Python实现平行坐标图的两种方法小结
Jul 04 Python
Django框架安装方法图文详解
Nov 04 Python
pycharm双击无响应(打不开问题解决办法)
Jan 10 Python
Python程序控制语句用法实例分析
Jan 14 Python
python集合删除多种方法详解
Feb 10 Python
Python定时从Mysql提取数据存入Redis的实现
May 03 Python
calendar在python3时间中常用函数举例详解
Nov 18 Python
浅谈Python中的函数(def)及参数传递操作
May 25 Python
从局部变量和全局变量开始全面解析Python中变量的作用域
Jun 16 #Python
实例讲解Python中global语句下全局变量的值的修改
Jun 16 #Python
最大K个数问题的Python版解法总结
Jun 16 #Python
Python中的多行注释文档编写风格汇总
Jun 16 #Python
Python构造自定义方法来美化字典结构输出的示例
Jun 16 #Python
浅谈Python中chr、unichr、ord字符函数之间的对比
Jun 16 #Python
详解Python中 __get__和__getattr__和__getattribute__的区别
Jun 16 #Python
You might like
linux下为php添加curl扩展的方法
2011/07/29 PHP
YII框架模块化处理操作示例
2019/04/26 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
2019/06/13 PHP
Thinkphp自定义生成缩略图尺寸的方法
2019/08/05 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
2019/10/10 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
自适应高度框架 ----属个人收藏内容
2007/01/22 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
只需20行代码就可以写出CSS覆盖率测试脚本
2013/04/24 Javascript
js添加table的行和列 具体实现方法
2013/07/22 Javascript
jquery获得同源iframe内body下标签的值的方法
2014/09/25 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
2015/07/01 Javascript
jQuery实现的图文高亮滚动切换特效实例
2015/08/10 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
微信小程序  简单实例(阅读器)的实例开发
2016/09/29 Javascript
JS中用try catch对代码运行的性能影响分析
2016/12/26 Javascript
Vue.js实战之使用Vuex + axios发送请求详解
2017/04/04 Javascript
js图片无缝滚动插件使用详解
2020/05/26 Javascript
Vue.js实现大转盘抽奖总结及实现思路
2019/10/09 Javascript
浅析Vue下的components模板使用及应用
2019/11/27 Javascript
通过Python实现自动填写调查问卷
2017/09/06 Python
浅谈pycharm出现卡顿的解决方法
2018/12/03 Python
python3实现绘制二维点图
2019/12/04 Python
python绘制动态曲线教程
2020/02/24 Python
python利用paramiko实现交换机巡检的示例
2020/09/22 Python
美国花园雕像和家居装饰网上商店:Design Toscano
2019/03/09 全球购物
保护环境倡议书500字
2014/05/19 职场文书
给客户的感谢信
2015/01/21 职场文书
捐款通知怎么写
2015/04/24 职场文书
法律意见书范本
2015/06/04 职场文书
2015中学教师个人工作总结
2015/07/22 职场文书
2015年度环卫处工作总结
2015/07/24 职场文书
品德与社会教学反思
2016/02/24 职场文书
小学生六年级作文之关于感恩
2019/08/16 职场文书
十大公认最好看的动漫:《咒术回战》在榜,《钢之炼金术师》第一
2022/03/18 日漫
Window server 2012 R2 AD域的组策略相关设置
2022/04/28 Servers