我们知道为了提高代码的运行速度,我们需要对书写的python代码进行性能测试,而代码性能的高低的直接反馈是电脑运行代码所需要的时间。这里将介绍四种常用的测试代码运行速度的方法。

第一种:使用time模块对代码的运行时间进行统计,代码如下:

import time

class Debug:

def mainProgram(self):

start_time = time.time()

for i in range(100):

print(i)

end_time = time.time()

print(f"the running time is: {end_time - start_time} s")

if __name__ == "__main__":

main = Debug()

main.mainProgram()

我们采用time 模块给所要测试的代码的前后加上时间戳,一个记为start_time,一个记作end_time,最后代码块的运行时间为end_time-start_time,单位为s(秒)。当然在python中还有许多的记录时间的模块,这里不做过多讨论,均类似于time模块,实现思路上一致,代码实现上大同小异。

第二种:使用IPython的Built-in magic commands,%time,代码如下:

class Debug:

def mainProgram(self):

%time for i in range(100): print(i)

main = Debug()

main.mainProgram()

"""

Wall time: 1.99 ms

"""

这个类定义是可以去掉的,并不会影响最终的结果,%time 后面加上想要计算时间的代码,然后编译器就会在运行后自动给出所测试代码的运行时间,但是经过测试,%time方法测出的时间并不准确,时间波动范围非常大,这个是很好理解的,因为计算机每时每刻都在处理一些进程,也就是说计算机的运行状态每时每刻都是不同的,所以在不同的时刻测试同一段代码的运行时间也会得到不同的结果。

第三种:用IPython的另一个Built-in magic commands,%timeit,使用方法类似于%time,代码如下:

class Debug:

def mainProgram(self):

%timeit for i in range(100): print(i)

main = Debug()

main.mainProgram()

"""

8.53 ms ± 452 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

"""

我们可以看到得到的结果是:每个循环8.53 ms±452 µs(平均±标准偏差,共运行7次,每个循环100个)%timeit相比于%time,%timeit会多次执行测试代码,并且会取它们运行时间的平均值,并且还会计算出它们的标准差,因此这种计算方法计算的结果相对于使用%time执行测试代码一次是比较准确的。

第四种:导入timeit模块来计算代码块的执行时间

import timeit

class Debug:

def mainProgram(self):

result = timeit.timeit(stmt="for i in range(100): print(i)", number=10)

print(result)

main = Debug()

main.mainProgram()

"""

0.05363089999991644 s

"""

导入timeit模块后使用timeit.timeit()来测试想要测试的代码,并且代码以string的形式进行输入,并且需要设定number值,设定测试的该段代码需要执行的次数,最终我们得到0.05363089999991644,单位是s(秒),与内置魔法方法%timeit方法不同的是虽然也是多次计算,但是最终获取的时间是n次执行代码所需的总时间而不是执行一次的时间。

至此,代码的运行速度测试方法的介绍暂时告一段落。(以后可能会进一步更新更加全面的),更多相关python 代码运行时间 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

python怎么设置代码执行时间_python 代码运行时间获取方式详解相关推荐

  1. python的turtle怎么设置rgb颜色_Python : turtle色彩控制实例详解

    ? 1 turtle.pencolor(* args ) 返回或设置pencolor. 允许四种输入格式: ? 1 pencolor() 将当前的pencolor返回为颜色规范字符串或元组(参见示例) ...

  2. python中的sep参数_Python sep参数使用方法详解

    Python sep参数使用方法详解 这篇文章主要介绍了Python sep参数使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Pyth ...

  3. python制作中文词云_Python如何生成词云(详解)

    前言 今天教大家用wrodcloud模块来生成词云,我读取了一篇小说并生成了词云,先看一下效果图: 效果图一: 效果图二: 根据效果图分析的还是比较准确的,小说中的主人公就是"程理" ...

  4. python中importlib模块安装_Python中标准模块importlib详解

    Python中标准模块importlib详解 模块简介 Python提供了importlib包作为标准库的一部分.目的就是提供Python中import语句的实现(以及__import__函数).另外 ...

  5. python读yaml的库_Python读取YAML文件过程详解

    这篇文章主要介绍了Python读取YAML文件过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python读取方法: import yaml ...

  6. python模拟银行存取款_python 模拟银行转账功能过程详解

    首先画出流程图,流程图与现实代码有出入,因为刚开始画流程图的时候,有些东西没考虑进去,后来写着写着就慢慢能想起来并实现了. 另有一点经验推荐给新手朋友,如果说碰到一个项目无从下手的话,就先慢慢去写,写 ...

  7. python用列表推导式_python 列表推导式使用详解

    所谓的列表推导式,就是指的轻量级循环创建列表. 基本使用方式 # 创建一个0-10的列表 a = [x for x in range(11)] print(a) """ ...

  8. python如何强制转换数据类型_python数据类型强制转换实例详解

    如果是字符串进行强制转换, 仅仅就是在原数据类型的两边套上引号 2.list : 强制转换成列表""" 如果是字符串,会把每一个字符都单独作为一个元素放到新的列表中 如果 ...

  9. python中split啥意思_python中split的用法详解_后端开发

    如何用python正则表达式匹配字符串?_后端开发 用python正则表达式匹配字符串的方法:1.当匹配单个位置的字符串时,可以使用[(.+?)]正则表达式来提取:2.当连续多个位置的字符串匹配时,可 ...

最新文章

  1. VS2017中使用码云上传项目以及问题汇总
  2. Skynet通讯遇到的奇怪问题
  3. hdu3068 . 最长回文
  4. 20 岁发表 SCI 的学霸,梦想用算法改变世界
  5. android开发工具下载
  6. lsm mysql_LSM设计一个数据库引擎
  7. 基于Callable和Future的匹配文件数量计算实例
  8. Eclipse-eclipse导入新项目后,运行时找不到主类解决办法
  9. 二 、 搭建Android 开发环境读书笔记
  10. 宋体(Simsun)和新宋体(NSimsun)的区别
  11. 网页设计html轮播代码,20行js代码实现网页轮播图效果
  12. Android中Intent的介绍
  13. 服务器文档分类,服务器的分类
  14. ext4文件系统错误处理机制
  15. 支付宝php sdk如何使用,支付宝SDK怎么用啊?
  16. 中国煤层气开发市场发展态势及投资规划深度研究报告2022-2028年
  17. Ubuntu14.04上安装calamari
  18. 登录起凡是显示计算机拒绝无法连接,怎么解决win10系统无法连接打印机并显示未指定设备问题?...
  19. Goddy服务器配置
  20. 小圆圈o表示的数学符号是复合映射或Hadamard积(矩阵元素一一对应相乘)

热门文章

  1. 如何在终端编译C++代码
  2. Tomcat安装与环境变量的配置
  3. 在连续发布版本的情况下 如何做好测试?
  4. C#用IrisSkin4.dll 美化Winform窗体
  5. java后端面试笔记-自用
  6. 00001-整数倒置-Java-leetcode-要考虑到溢出问题
  7. Leetoce--572. 另一个树的子树(java)
  8. git 忽略__pycache___容易被忽略的 Python 命令行参数
  9. issubclass在python中的意思_python基础之类的isinstance与issubclass、反射
  10. gentoo linux 分区_小白安装Gentoo Linux操作系统——磁盘分区