Python内置性能分析,timeit模块

timeit模块可以用来测试一小段Python代码的执行速度。

class timeit.Timer(stmt='pass', setup='pass', timer=<timer function>)

Timer是测量小段代码执行速度的类。

stmt参数是要测试的代码语句(statment);

setup参数是运行代码时需要的设置;

timer参数是一个定时器函数,与平台有关。

timeit.Timer.timeit(number=1000000)

Timer类中测试语句执行速度的对象方法。number参数是测试代码时的测试次数,默认为1000000次。方法返回执行代码的平均耗时,一个float类型的秒数。

下面给个例子。

import timeitdef t1():l = []for i in range(1000):l = l + [i]
def t2():l = []for i in range(10000):l.append(i)def t3():l = [i for i in range(10000)]def t4():l = list(range(10000))timer01 = timeit.Timer("t1()", "from __main__ import t1")
print("+", timer01.timeit(number=1000), ' seconds')timer02 = timeit.Timer("t2()", "from __main__ import t2")
print("append", timer02.timeit(number=1000), ' seconds')timer03 = timeit.Timer("t3()", "from __main__ import t3")
print("comprehension", timer03.timeit(number=1000), ' seconds')timer04 = timeit.Timer("t4()", "from __main__ import t4")
print("list range", timer04.timeit(number=1000), ' seconds')

上面可以自己执行一下代码看一下结果,以及这个模块怎么用的。

大家看完上面的代码的执行时间,有没有想过一个问题,为什么有的有的代码的执行时间快,有的代码执行时间短呢?其实这里是想引入数据结构的概念,大家可以看下一章内容。

Python数据结构与算法(二)--timeit模块相关推荐

  1. Python 数据结构与算法——二叉搜索树的实现

    class Tree:本身自然需要维护根节点(root),用于指向树的第一个节点 class Tree:root = None class Node:每一个节点都要维护左子树.右子树 class No ...

  2. Python数据结构与算法(二)栈和队列

    本系列总结了python常用的数据结构和算法,以及一些编程实现. 参考书籍:<数据结构与算法 Python语言实现> [美]Michael T.Goodrich, Roberto Tama ...

  3. python数据结构和算法 时间复杂度分析 乱序单词检测 线性数据结构 栈stack 字符匹配 表达式求值 queue队列 链表 递归 动态规划 排序和搜索 树 图

    python数据结构和算法 参考 本文github 计算机科学是解决问题的研究.计算机科学使用抽象作为表示过程和数据的工具.抽象的数据类型允许程序员通过隐藏数据的细节来管理问题领域的复杂性.Pytho ...

  4. Python数据结构与算法(一)列表和元组

    本系列总结了python常用的数据结构和算法,以及一些编程实现. 参考书籍:<数据结构与算法 Python语言实现> [美]Michael T.Goodrich, Roberto Tama ...

  5. Python数据结构与算法(1.7)——算法分析

    Python数据结构与算法(1.7)--算法分析 0. 学习目标 1. 算法的设计要求 1.1 算法评价的标准 1.2 算法选择的原则 2. 算法效率分析 2.1 大 OOO 表示法 2.2 常见算法 ...

  6. Python中计算程序的运行时间——timeit模块

    Python中计算程序的运行时间--timeit模块 绪论 一.timeit的基本用法 1.1 timeit.timeit()函数: 创建一个Timer实例,并运行代码进行计时,默认将代码执行一百万次 ...

  7. python leetcode_leetcode 介绍和 python 数据结构与算法学习资料

    for (刚入门的编程)的高中 or 大学生 leetcode 介绍 leetcode 可以说是 cs 最核心的一门"课程"了,虽然不是大学开设的,但基本上每一个现代的高水平的程序 ...

  8. Python数据结构与算法(1.1)——数据结构与算法导论

    Python数据结构与算法(1.1)--数据结构与算法导论 0. 学习目标 1. 数据结构概述 1.1 什么是数据结构 1.2 逻辑结构和物理结构 1.3 抽象数据类型 1.4 数据结构学习的必要性 ...

  9. [FreeCodeCamp笔记] Python 数据结构和算法1 二分搜索 Binary Search

    我以前学过数据结构和算法(data structure and algorithms. 现在普遍简称DSA),当时用的Robert Sedgewick的coursera课程.这位大神写的<算法( ...

最新文章

  1. 4.2小时完成数万年计算,比超级计算机快亿亿亿倍!量子计算机“祖冲之号”“九章”再升级...
  2. mybatis相关知识
  3. HDOJ HDU 1709 The Balance ACM 1709 IN HDU
  4. linux下recv 、send阻塞、非阻塞区别和用法
  5. 如何在Swift中使用CoreData设置有用的自动完成UITextField
  6. 常用报文的解析与相互转换
  7. mycat 从入门到放弃 (转)
  8. 301 302区别_302状态码代表什么,302状态码解决方法
  9. w10 桌面计算机垃圾桶,win10垃圾桶图标不见了怎么办
  10. android常用布局详解
  11. 小象学院 零基础Python入门 案例四 52周存钱挑战v_4.0
  12. 串口控制计算机重启,电脑开机无限重启解决方法
  13. Python 将MP3音频文件转换成MIDI乐谱文件
  14. ansys 常见命令集合
  15. C++程序设计课程主页-2013级
  16. MATLAB软件应用及语法学习基础
  17. angular4学习之旅——问题集
  18. 最低工资哪家强?2020全国各地最低工资排名出炉!
  19. 【eos系列】eos系统合约介绍 — 发币合约eosio.token
  20. Jenkins怎么发邮件,高级测试手把手教你...

热门文章

  1. HTML5新的解析顺序,HTML5新表单新功能解析
  2. 密码学电子书_密码学中的电子密码书(ECB)
  3. 数据库如何处理数据库太大_网络数据库中的数据处理
  4. Java RandomAccessFile readChar()方法及示例
  5. java如何解决高并发症,JAVA线上故障紧急处理详细过程!
  6. python改变列的数据类型_python – Pandas:更改列的数据类型
  7. treeset java_Java TreeSet iterator()方法与示例
  8. Java ObjectInputStream readFloat()方法与示例
  9. 经典面试题|讲一讲JVM的组成
  10. Spring Boot 最佳实践(三)模板引擎FreeMarker集成