Python Timeit() 与示例
什么是 Python Timeit()?
Python timeit() 是 Python 库中的一种方法,用于测量给定代码片段的执行时间。 Python 库运行代码语句 100 万次,并提供从给定的代码片段集中花费的最短时间。 Python timeit() 是一种有用的方法,有助于检查代码的性能。
语法:
timeit.timeit(stmt, setup,timer, number)
参数
- stmt :这将获取您要测量执行时间的代码。默认值为“通过”。
- 设置 :这将具有需要在 stmt 之前执行的设置详细信息。默认值为“通过”。
- 计时器 :这会有定时器值,timeit() 已经设置了默认值,我们可以忽略它。
- 号码 :stmt 将按照此处给出的数字执行。默认值为 1000000。
要使用 timeit(),我们需要导入模块,如下所示:
import timeit
第一个例子
下面是一个timeit()函数的简单例子
代码示例1:
# testing timeit() import timeit print(timeit.timeit('output = 10*5'))
输出:
0.06127880399999999
我们看过一个简单的例子,给我们简单代码语句输出的执行时间=10*5,执行时间为0.06127880399999999。
在 python 代码中计时多行
有两个你可以在 timeit.timeit() 中执行多行代码,使用分号或将代码保存为带三引号的字符串。
以下是展示其工作原理的示例。
示例 1:使用分号
import timeit print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
输出:
The time taken is 0.137031482
示例 2:使用三引号
import timeit import_module = "import random" testcode = ''' def test(): return random.randint(10, 100) ''' print(timeit.repeat(stmt=testcode, setup=import_module))
输出:
C:\pythontest>python testtimeit.py The time taken is 0.182619178
timeit - 方法:
这里有两个重要的timeit方法
timeit.default_timer() :这将在执行时返回默认时间。
timeit.repeat(stmt, setup, timer, repeat, number) :与 timeit() 相同,但在 repeat 时 timeit() 被称为重复的次数。
程序示例1:
# testing timeit() import timeit import_module = "import random" testcode = ''' def test(): return random.randint(10, 100) ''' print(timeit.timeit(stmt=testcode, setup=import_module))
输出:
0.46715912400000004
示例 2:
default_timer() 示例
# testing timeit() import timeit import random def test(): return random.randint(10, 100) starttime = timeit.default_timer() print("The start time is :",starttime) test() print("The time difference is :", timeit.default_timer() - starttime)
输出:
The start time is : 0.220261875 The time difference is : 0.0004737320000000045
示例 3:timeit.repeat()
# testing timeit() import timeit import_module = "import random" testcode = ''' def test(): return random.randint(10, 100) ''' print(timeit.repeat(stmt=testcode, setup=import_module, repeat=5))
输出:
[0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]
timeit.repeat() 的工作原理类似于 timeit.timeit() 函数,唯一的区别是它在 repeat 参数中接受并以数组格式返回执行时间,其值根据重复次数。
在命令行界面中执行计时函数timeit.timeit()
在命令行的 timeit() 中执行函数的语法如下:
python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement ...]
命令行参数:
- -n N:你希望代码执行的次数。
- -r N:你希望timeit()函数重复的次数
- -s S:这将包含在代码执行之前执行的设置详细信息。
- -t:为此,您可以使用 time.time()
- -c:为此,您可以使用 time.clock()
- -h:寻求帮助
- 代码声明:代码详情。
示例:
C:\pythontest>python -m timeit -s 'text="hello world"' 20000000 loops, best of 5: 13.1 nsec per loop
另一种可以在命令行中执行的方式如下所示:
示例:
>>> import timeit >>> print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b')) The time taken is 0.15048536300000137 >>>
为什么 timeit() 是衡量 Python 代码执行时间的最佳方法?
以下是我们认为 timeit() 是衡量执行时间的最佳方法的几个原因。
- 它运行代码语句 100 万次,这是默认值,然后,它将返回您所用的最短时间。您也可以通过在time()函数中设置参数个数来增加/减少100万。
- 在执行测试时,每次都通过 time() 函数禁用垃圾收集。
- timeit() 在内部根据您使用的操作系统获取准确的时间。例如,对于 Windows 操作系统,它将使用 time.clock(),对于 mac 和 Linux,它将使用 time.time()。
总结
timeit()用于获取给定小代码的执行时间
timeit() 使用的参数
- stmt:这将获取你想要测量执行时间的代码
- setup:这将有需要在 stmt 之前执行的设置详细信息
- timer:这个会有timer值,timeit()已经设置了默认值,我们可以忽略它。
- number:stmt 将按照此处给出的数字执行。
Python