测试命令运行时间:timeit和profile
先说timeit
from timeit import Timer
def test1():
n=0
for i in range(101):
n+=i
return n def test2():
return sum(range(101)) def test3():
return sum(x for x in range(101)) if __name__=='__main__':
t1=Timer("test1()","from __main__ import test1")
t2=Timer("test2()","from __main__ import test2")
t3=Timer("test3()","from __main__ import test3")
print(t1.timeit(100000))
# 或者
# import timeit
# print(timeit.timeit('test1()',"from __main__ import test1",number=100000))
print(t2.timeit(10000))
print(t3.timeit(10000))
print(t1.repeat(3, 10000))
print(t2.repeat(3, 10000))
print(t3.repeat(3, 10000))
输出结果:
结果说明:
t1=Timer("test1()","from __main__ import test1")是创建一个对象。第一个参数是要执行的语句,第二个参数是为第一个参数语句构建环境的导入语句。 从内部讲, timeit 构建起一个独立的虚拟环境, 手工地执行建立语句,然后手工地编译和执行被计时语句。
t1.timeit(100000) 参数是一个测试里,将命令执行100000
t1.repeat(3, 10000)第一个参数表示测试几次,第二个参数表示每次测试中执行重复多少次。
详细参考:
http://blog.csdn.net/huludan/article/details/43935873
再说profile
def foo():
sum = 0
for i in range(10000000):
sum += i
return sum
if __name__ == "__main__":
import profile
profile.run("foo();foo()")
输出结果:
结果说明:
ncalls
|
函数的被调用次数
|
tottime
|
函数总计运行时间,除去函数中调用的函数运行时间
|
percall
|
函数运行一次的平均时间,等于tottime/ncalls
|
cumtime
|
函数总计运行时间,含调用的函数运行时间
|
percall
|
函数运行一次的平均时间,等于cumtime/ncalls
|
filename:lineno(function)
|
函数所在的文件名,函数的行号,函数名
|
详细参考:http://blog.csdn.net/gzlaiyonghao/article/details/1483728
测试命令运行时间:timeit和profile的更多相关文章
- Python的7种性能测试工具:timeit、profile、cProfile、line_profiler、memory_profiler、PyCharm图形化性能测试工具、objgraph
1.timeit: >>> import timeit >>> def fun(): ): a = i * i >>> timeit.timeit ...
- python__标准库 : 测试代码运行时间(timeit)
用 timeit.Timer.timeit() 方法来测试代码的运行时间: from timeit import Timer def t1(): li = [] ): li.append(i) def ...
- Python基础教程【读书笔记】 - 2016/7/31
希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第十波:第10章 充电时刻 Python语言的核心非常强大,同时还提供了更多值得一试的工具.Python的标准安装包括 ...
- windows和linux在建筑python集成开发环境IDE
http://blog.csdn.net/pipisorry/article/details/39854707 使用的系统及软件 Ubuntu / windows Python 2.7 / pytho ...
- Python丨Python 性能分析大全
虽然运行速度慢是 Python 与生俱来的特点,大多数时候我们用 Python 就意味着放弃对性能的追求.但是,就算是用纯 Python 完成同一个任务,老手写出来的代码可能会比菜鸟写的代码块几倍,甚 ...
- 对于Python语音性能的一些个人见解
虽然运行速度慢是 Python 与生俱来的特点,大多数时候我们用 Python 就意味着放弃对性能的追求.但是,就算是用纯 Python 完成同一个任务,老手写出来的代码可能会比菜鸟写的代码块几倍,甚 ...
- python高级编程:缓存
# -*- coding: utf-8 -*-__author__ = 'Administrator'#缓存"""对于运行代价很高的函数和方法结果,可以进行缓存,只要:1 ...
- Python神器 Jupyter Notebook
什么是Jupyter Notebook? 简介 Jupyter Notebook是基于网页的用于交互计算的应用程序.其可被应用于全过程计算:开发.文档编写.运行代码和展示结果. Jupyter Not ...
- Jupyter Notebook(推荐使用Anaconda安装)
一.Jupyter Notebook介绍 1.简介 Jupyter Notebook是基于网页的用于交互计算的应用程序.其可被应用于全过程计算:开发.文档编写.运行代码和展示结果. 简而言之,Jupy ...
随机推荐
- fstrict-aliasing
承如“optimization blocks”文中所述,由于相同的指针可能指向相关的内存区,因此编译器将不做过分的优化…… 特意搜了下编译器在不同的优化等级下都有哪些默认优化,因此有了此记录(比较长, ...
- VC++第三方库配置-OpenSpirit 4.2.0 二次开发
在VS中右击项目,点击属性 1.配置属性--常规--输出目录:Windows\VS2010\debug\ 2.配置属性--常规--中间目录:Windows\VS2010\debug\ 3.配置属性-- ...
- python2.0_s12_day10_Twsited异步网络框架
Twsited异步网络框架 Twisted是一个事件驱动的网络框架,其中包含了诸多功能,例如:网络协议.线程.数据库管理.网络操作.电子邮件等. Package application Configu ...
- 微信小程序 ui框架(辅助)
WeUi: https://weui.io/ https://github.com/weui/weui-wxss/ Wa-Ui: https://github.com/liujians/Wa-UI/w ...
- 开源项目源码解析-PhotoView 源码解析
1. 功能介绍 特性(Features): 支持 Pinch 手势自由缩放. 支持双击放大/还原. 支持平滑滚动. 在滑动父控件下能够运行良好.(例如:ViewPager) 支持基于 Matrix 变 ...
- mac 特殊符号的操作
——快捷键符号对照表,Mac下的那些符号都代表哪些按键? 这期我们教大家认识符号. 在Mac的快捷键中经常会有一些符号,比如⌘.⌥.⇧.⌃等,而Mac下只有command键上有一个⌘的符号,而其他按键 ...
- LeetCode——Missing Number
Description: Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one t ...
- SimpleDateFormat使用详解 <转>
public class SimpleDateFormat extends DateFormat SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类. 它允许格式化 (d ...
- Video如何不自动全屏播放?
知乎:微信内置浏览器 如何小窗不全屏播放视频? 目前在微信中只能全屏播放,只有加入腾讯白名单的视频才能小屏播放. 知乎上讨论的解决方案尚未测试,太麻烦了.
- xcode官网下载地址
https://developer.apple.com/downloads/