【记录】Python|Python3程序测试速度的整个流程、方法对比和选取方式
其他的博客太!长!了!我实在看不下去了,每次都不记得什么场景用什么函数。
让我来用表格总结一下各个函数的使用场景、特性。
并附上分别的测试速度的过程的样例代码。
使用场景、特性
这个表格提供了这些函数在不同方面的详细对比,方便根据具体需求选择合适的函数。
函数 | 使用场景 | 返回类型 | 精度 | 包含sleep时间 | 平台依赖性 | 特定点时间参考 | 特殊用途 | 最早支持版本 | 性能 |
---|---|---|---|---|---|---|---|---|---|
time.time() | 时间格式化,测试代码时间 | 浮点数 | 取决于系统 | 是 | 高 | 无 | 获取当前时间的时间戳 | Python 初始版本 | 一般 |
time.time_ns() | 时间格式化,测试代码时间 | 整数 | 非常高精度 | 是 | 高 | 无 | 获取当前时间的时间戳,以纳秒为单位 | Python 3.7 | 高 |
time.perf_counter() | 测试代码时间 | 浮点数 | 高精度 | 是 | 低 | 是 | 性能测试和基准测试 | Python 3.3 | 非常高 |
time.perf_counter_ns() | 测试代码时间 | 整数 | 非常高精度 | 是 | 低 | 是 | 短时间间隔计时,以纳秒为单位 | Python 3.7 | 非常高 |
time.process_time() | 性能分析和优化 | 浮点数 | 适合CPU时间测量 | 否 | 低 | 无 | 精确的CPU时间分析和优化 | Python 3.3 | 高 |
time.process_time_ns() | 性能分析和优化 | 整数 | 非常高精度 | 否 | 低 | 无 | 精确的CPU时间分析和优化,以纳秒为单位 | Python 3.7 | 非常高 |
timeit.timeit() | 微基准测试 | 浮点数 | 高 | 取决于代码 | 低 | 无 | 重复执行小段代码的性能测试 | Python 2.6 | 高 |
time.clock() (已废弃) | 性能分析(在Python 3.3以后废弃) | 浮点数 | 取决于系统 | 否 | 高 | 无 | CPU时间测量 | Python 初始版本 | 中等(现已废弃) |
这个表格涵盖了Python中常用的几种测量代码运行速度的函数及其特性,可供选择最合适的工具进行性能测试。需要注意的是,time.clock()
函数在Python 3.3及以后的版本中已被废弃,不建议使用。并且,性能评估是相对的,并且可能受到具体使用场景和系统配置的影响。
在这个表格中,系统时间调整影响
表示函数返回的时间值是否可能受到系统时间更改的影响,适用场景
是函数最典型的使用情境,特定点时间参考
表示函数的时间计数是否从某个特定的时间点(如系统启动时)开始计算。这样的分类提供了更清晰的视角来理解和选择这些函数。
其中,由于 time.time_ns()
使用整数而不是浮点数,它还减少了与浮点数运算相关的精度损失和计算开销。整数运算通常比浮点数运算更快且更精确,这进一步提高了其性能表现。因此,在需要极高精度和性能的场合,time.time_ns()
是更优的选择。
样例代码
这里是使用Python中的不同时间测量函数来测试代码执行时间的样例代码:
-
time.time()
:import time start = time.time() # 插入要测试的代码 time.sleep(1) # 示例:休眠1秒 end = time.time() print("执行时间:", end - start, "秒")
-
time.perf_counter()
:import time start = time.perf_counter() # 插入要测试的代码 time.sleep(1) # 示例:休眠1秒 end = time.perf_counter() print("执行时间:", end - start, "秒")
-
time.process_time()
:import time start = time.process_time() # 插入要测试的代码 for _ in range(1000000): # 示例:执行一个循环 pass end = time.process_time() print("CPU执行时间:", end - start, "秒")
-
time.perf_counter_ns()
:import time start = time.perf_counter_ns() # 插入要测试的代码 time.sleep(1) # 示例:休眠1秒 end = time.perf_counter_ns() print("执行时间:", end - start, "纳秒")
-
time.process_time_ns()
:import time start = time.process_time_ns() # 插入要测试的代码 for _ in range(1000000): # 示例:执行一个循环 pass end = time.process_time_ns() print("CPU执行时间:", end - start, "纳秒")
-
time.time_ns()
:import time start = time.time_ns() # 插入要测试的代码 time.sleep(1) # 示例:休眠1秒 end = time.time_ns() print("执行时间:", end - start, "纳秒")
-
timeit.timeit()
:import timeit code_to_test = """ for _ in range(1000000): pass """ execution_time = timeit.timeit(stmt=code_to_test, number=100) print("执行时间:", execution_time, "秒")
在这些示例中,你可以替换注释部分的代码,以测试你想要测量执行时间的实际代码段。
结尾声明
部分内容由GPT协助我整理完成,因为表格实在太难打了,使用的Prompt大意是:
1. 请根据你的知识将特性进一步细分,例如返回的类型、精度、其他特点,请将其他特点对比总结一下,同类的分一下类,根据你的知识库,完善这些函数别的特性,并请你将“其他特性”也分类归类,不要写成“其他特性”。现在请将你总结的全部使用场景、特性用表格总结,请你把你知道的能用来测Python程序的运行速度的函数都按照markdown表格进行总结。
2. 然后请分别输出各个函数用于测试代码时间的样例代码。
更多测试方法:python性能测试
本账号所有文章均为原创,欢迎转载,请注明文章出处:https://blog.csdn.net/qq_46106285/article/details/134755192。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix