Python代码耗时统计

本文介绍了Python中time模块的time()和perf_counter()函数的区别,以及timeit模块如何用于测量代码执行时间。perf_counter提供了更高精度的计时,而timeit则提供了便捷的性能测试工具。
摘要由CSDN通过智能技术生成

time模块

在代码执行前后各记录一个时间点,两个时间戳相减即程序运行耗时。这种方式虽然简单,但使用起来比较麻烦。

time.time()

函数返回的时间是相对于1970年1月1日的秒数

import time

start = time.time()
time.sleep(1)
end = time.time()
print(f"耗时: {end - start}秒")

输出:
耗时: 1.012192964553833秒

time.perf_counter()

函数用于获取当前时间的精确计时器值,通常用于测量程序的执行时间。

import time

start = time.perf_counter()
time.sleep(1)
end = time.perf_counter()
print(f"耗时: {end - start}秒")

输出:
耗时: 0.998019699996803秒

区别与应用

time() 函数返回的时间是相对于1970年1月1日的秒数,而 perf_counter() 函数返回的是CPU时钟计数值,单位是秒。
time() 函数的精度通常是1秒,而 perf_counter() 函数的精度通常是纳秒级别。
time() 函数的返回值可以被修改,而 perf_counter() 函数的返回值不能被修改。
因此,如果需要测量程序的执行时间,建议使用perf_counter()函数。

timeit模块

timeit是Python标准库内置的小工具,可以快速测试小段代码的性能。可以在命令行界面直接使用,也可以通过导入模块进行调用

timeit 函数:

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

参数说明:

  • stmt: statement的缩写,你要测试的代码或者语句,纯文本,默认值是 “pass”
  • setup: 在运行stmt前的配置语句,纯文本,默认值也是 “pass”
  • timer: 计时器,一般忽略这个参数
  • number: stmt执行的次数,默认是1000000,一百万

repeat 函数:

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

是timeit的repeat版,可以指定重复timeit的次数,默认是5次,然后返回一个数组。

举一个简单的例子来说明用法:

import timeit
print(timeit.timeit('output = 10*5')) 
# 0.014560436829924583
print(timeit.repeat('output = 10*5')) 
# [0.012098299994249828, 0.012399200000800192, 0.012346500006970018, 0.012961999993422069, 0.012330500001553446]

 查看原文:Python代码耗时统计

 关注公众号 "字节航海家" 及时获取最新内容

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值