亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Python

Python timeit():精准测量代码执行时间与实战示例

Python timeit() – 测量执行时间的实用指南

什么是 Python timeit()?

Python timeit() 是内置模块,旨在高精度测量小代码片段的执行时间。默认运行语句一百万次并报告最快运行时间,帮助对比不同实现的性能。

语法

timeit.timeit(stmt, setup, timer, number)

参数

先导入模块:

import timeit

示例 1 – 计时简单表达式

# 测试基本算术运算
import timeit
print(timeit.timeit("output = 10*5"))

典型输出:

0.06127880399999999

显示一百万次运行中最快一次的耗时(秒)。

计时多行代码

timeit 支持多行代码,用分号分隔语句或传入三引号字符串。

使用分号

import timeit
print("The time taken is ", timeit.timeit(stmt="a=10;b=10;sum=a+b"))

输出:

The time taken is 0.137031482

使用三引号字符串

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

关键方法

示例 1 – 使用 timeit.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()

# 测量单次函数调用
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()

# 运行测试五次并捕获最佳时间
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]

每个条目是 1,000,000 次运行中一次迭代的最佳时间。

命令行用法

可直接从 shell 调用 timeit:

python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement ...]

示例

C:\pythontest>python -m timeit -s 'text="hello world"' 
20000000 loops, best of 5: 13.1 nsec per loop

另一种便捷方式是在 REPL 中调用:

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 模块是基准测试短 Python 片段的必备工具。参数直观:

请务必使用 timeit 进行准确、可重复的测量。

Python

  1. Python 轻松获取当前时间与时区数据
  2. 精通 Python time 模块:函数、结构体与实战示例
  3. 精通 Python time.sleep():最佳实践、多线程与实战案例
  4. Python str.count() 完全指南:统计字符与子串出现次数实战
  5. Python format() 字符串格式化完全指南:占位符、格式化规范、类与字典应用
  6. Python 字符串 find() 方法完全指南:语法、参数、替代方案与计数技巧
  7. 精通 Python Lambda 函数:实用示例与最佳实践
  8. Python round() 函数详解与实战示例
  9. 精通 Python map() 函数:语法、示例与最佳实践
  10. Python collections.Counter:高效计数、更新与算术运算
  11. 理解 Python type() 与 isinstance():实战示例详解
  12. Python list.count() 专家指南:语法、示例与性能解析