如何获得Python代码的时间执行速度?

如何获得Python代码的时间执行速度?

在Python编程中,我们经常需要对代码的执行速度进行优化。为此,我们需要了解Python提供的计时工具来测量代码的执行时间。Python中提供了许多内置计时函数和第三方库来对代码执行时间进行测量。在本篇文章中,我将介绍Python中可用的几种计时方法,并提供示例代码来帮助您更好地理解每种计时方法的用法。

阅读更多:Python 教程

内置计时函数

Python提供了两个内置计时函数——time()ctime(),它们都是基于系统时钟的函数,用于测量代码行的执行时间。

time()函数

time()函数返回一个自1970年1月1日午夜以来的秒数。这个数字被称为Unix时间戳。我们可以通过计算函数在代码哪些行执行之间的时间差来测量代码执行时间。以下是一个使用time()函数测量Python代码执行时间的示例:

import time

start = time.time()  # 记录程序开始执行的时间戳

# 执行您的程序代码
for i in range(100000):
    pass

end = time.time()  # 记录程序结束执行的时间戳

print("代码执行时间为:{:.4f}秒".format(end-start))  # 打印执行时间差

代码执行输出:

代码执行时间为:0.0050秒

ctime()函数

ctime()函数返回一个可读的时间字符串,表示当前时间。使用ctime()函数计时代码的方式与使用time()函数相同。以下是一个使用ctime()函数测量Python代码执行时间的示例:

import time

start = time.ctime()  # 记录程序开始执行的时间

# 执行您的程序代码
for i in range(100000):
    pass

end = time.ctime()  # 记录程序结束执行的时间

print("代码执行开始时间:", start)
print("代码执行结束时间:", end)

代码执行输出:

代码执行开始时间: Tue Sep 28 15:30:46 2021
代码执行结束时间: Tue Sep 28 15:30:46 2021

datetime模块

Python中的datetime模块提供了许多有用的类和方法,包括计算时间差的方法。我们可以使用datetime.now()方法来获取当前时间戳以及执行代码中不同行之间的时间差。以下是一个使用datetime模块测量Python代码执行时间的示例:

from datetime import datetime

start = datetime.now()  # 记录程序开始执行时间戳

# 执行您的程序代码
for i in range(100000):
    pass

end = datetime.now()  # 记录程序结束执行时间戳

print("代码执行时间为:{:.4f}秒".format((end-start).total_seconds()))  # 打印执行时间差

代码执行输出:

代码执行时间为:0.0050秒

第三方库

除了内置的计时函数和datetime模块外,Python还有许多第三方库可用来测量代码执行时间,比如timeit模块和perf_counter()函数。这些库和函数都是专门为性能测试而设计的,提供了更准确的计时与测量。接下来,我们将分别介绍这些库和函数的用法。

timeit模块

timeit模块允许我们执行代码多次,并返回代码执行的平均时间。该模块有两种使用方式:作为命令行工具和作为Python模块。命令行方式的使用方法如下:

python -m timeit -s "your setup code" "your code to measure"

其中,-s选项用于指定执行代码前需要运行的语句,而另一个参数则是将要进行性能测试的代码。

以下是一个使用timeit模块测量Python代码执行时间的示例:

import timeit

# 待测函数
def test_func():
    for i in range(100000):
        pass

# 测试代码执行时间,重复10次
t = timeit.Timer(test_func).timeit(10)

print("代码执行时间为:{:.4f}秒".format(t/10))  # 打印平均执行时间

代码执行输出:

代码执行时间为:0.0049秒

perf_counter()函数

perf_counter()函数是Python内置的一个高精度计时器,适用于测量函数的执行时间。该函数返回一个CPU时钟计数器的值,用于比较两次调用之间经过的时间。以下是一个使用perf_counter()函数测量Python代码执行时间的示例:

import time

# 待测函数
def test_func():
    for i in range(100000):
        pass

# 开始计时
start = time.perf_counter()

# 执行您的程序代码
test_func()

# 结束计时
end = time.perf_counter()

print("代码执行时间为:{:.4f}秒".format(end-start))  # 打印执行时间差

代码执行输出:

代码执行时间为:0.0015秒

结论

本文介绍了Python中常用的几种计时方法,包括time()ctime()函数、datetime模块、timeit模块和perf_counter()函数。使用这些方法,我们可以轻松地测量Python代码的执行时间,并通过优化代码来提高代码的执行效率。同时,这些方法也可以帮助我们识别并解决代码中存在的潜在性能问题。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程