欢迎访问我的网站,希望内容对您有用,感兴趣的可以加入我们的社群。

Python中测量代码执行时间的利器

Python 迷途小书童 1年前 (2023-08-28) 600次浏览 0个评论

简介

作为 Python 开发者,我们都希望代码运行更快一些,今天给大家介绍一个实用的工具模块 timeit,它可以帮我们精确测量 Python 代码的执行时间。赶快来看看吧!

timeit 模块是 python 的内置模块,不需要另外安装。它为我们提供了一个重复执行代码片段的简单接口,可以准确地测量 Python 代码的执行时间,同时使用方法也非常简单,让我们能够更专注于业务代码本身,而不需要写额外的计时代码。

底层原理

timeit 模块利用 Python 中的 time 模块,在一个独立的进程中多次重复执行目标代码,计算总的执行时间。

示例代码

timeit 模块提供了一个函数 timeit(),它可以让我们测量一段代码的执行时间。timeit() 函数的语法如下:

timeit(stmt, setup=None, timer=None, number=1)

其中,各参数含义如下

  • stmt 是需要测量执行时间的代码
  • setup 是执行 stmt 之前需要执行的代码
  • timer 是用于测量时间的函数。默认情况下,timer 使用的是 time.perf_counter() 函数
  • number 是需要测量的代码的次数。默认情况下,number 是1

下面来看看它的基本使用示例

import timeit

def test_func():
  print("Hello, world!")

print(timeit.timeit(test_func, number=1000))

运行这段代码,我们会得到输出

Hello, world!

...

0.007531400000000001

这表示,test_func() 函数在 1000 次执行中,平均每次执行的时间为 0.007531400000000001 秒。

除了 timeit 方法,timeit 模块还提供了 repeat() 方法,这个方法可以多次执行一个函数,并返回每次执行的执行时间。timeit.repeat() 方法的语法如下:

timeit.repeat(stmt, repeat=3, setup=None, timer=None, number=1)

其中

  • stmt 是需要测量执行时间的代码
  • repeat 是需要执行的次数
  • setup 是执行 stmt 之前需要执行的代码
  • timer 是用于测量时间的函数。默认情况下,timer 使用的是 time.perf_counter() 函数
  • number 是需要测量的代码的次数。默认情况下,number 是 1

以下是一个使用 timeit.repeat() 方法测量函数执行时间的示例

import timeit

def test_func():
  return 10 ** 2

print(timeit.repeat(test_func, repeat=3))

运行这段代码,我们会得到以下输出

[0.0616678, 0.0615304, 0.062235100000000015]

小结

timeit 模块是一个非常简单易用的代码执行时间测量工具。它可以帮助我们快速测量代码的执行时间,并对代码进行优化。

喜欢 (0)

您必须 登录 才能发表评论!