python中的代码运行时间获取方式

作者:勤奋的大熊猫 时间:2023-11-19 22:57:02 

我们知道为了提高代码的运行速度,我们需要对书写的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 脚本性能分析(超链接点击跳转)。

来源:https://blog.csdn.net/u011699626/article/details/108591752

标签:python,代码运行,时间
0
投稿

猜你喜欢

  • python比较两个列表大小的方法

    2023-01-14 22:24:40
  • asp dictionary对象使用介绍

    2008-05-30 13:51:00
  • 序列化Python对象的方法

    2022-07-09 22:51:59
  • Python调用Fortran的三种形式

    2021-01-10 13:25:08
  • 用Python编写分析Python程序性能的工具的教程

    2022-02-13 01:57:03
  • 详解如何在nuxt中添加proxyTable代理

    2024-05-10 14:20:29
  • Python中logging日志记录到文件及自动分割的操作代码

    2022-09-08 12:33:33
  • Python实现投影法分割图像示例(二)

    2021-04-19 01:53:18
  • 一文解答什么是MySQL的回表

    2024-01-18 02:41:56
  • Python同时处理多个异常的方法

    2021-12-24 11:20:56
  • python 获取域名到期时间的方法步骤

    2022-09-02 13:37:43
  • 获取CSDN文章内容并转换为markdown文本的python

    2021-04-05 08:32:15
  • C#连接MySql数据库的方法

    2024-01-12 16:55:38
  • 对TensorFlow的assign赋值用法详解

    2023-03-18 22:52:56
  • Python实现微信表情包炸群功能

    2022-08-17 07:28:14
  • sqlserver中创建链接服务器图解教程

    2024-01-23 18:14:13
  • php实现断点续传大文件示例代码

    2024-04-28 09:45:17
  • asp如何做一个检索结果带链接的检索?

    2010-07-11 21:15:00
  • 使用jQuery.form.js/springmvc框架实现文件上传功能

    2024-04-09 19:46:12
  • 在Python中操作时间之tzset()方法的使用教程

    2022-10-28 22:22:01
  • asp之家 网络编程 m.aspxhome.com