Python代码耗时统计:时间戳、装饰器与timeit模块

需积分: 9 0 下载量 151 浏览量 更新于2024-08-11 收藏 361KB PDF 举报
"本文主要介绍了Python中用于统计代码运行时间的几种方法,包括时间戳相减、装饰器以及timeit模块的使用。" 在Python编程中,了解代码的执行时间对于优化性能至关重要。以下是文中提到的三种统计代码耗时的方法: 1. 时间戳相减 这是最基础的方法,通过在代码开始和结束处获取时间戳,然后相减得到运行时间。Python的`time`模块提供了一个名为`time()`的函数,它返回自1970年1月1日以来的秒数(浮点数表示部分秒)。例如: ```python import time start_time = time.time() # 代码执行部分 sum = 0 for i in range(100000000): sum += i end_time = time.time() print(f"耗时: {end_time - start_time:.2f}秒") ``` 这种方法简单易懂,但精度有限,可能不适合微秒级别的计时。 2. 装饰器 装饰器是一种高级技巧,可以在不修改原有函数代码的情况下,添加额外的功能,如计算函数执行时间。下面是一个简单的装饰器示例: ```python import time def get_time(func): def inner(*args, kwargs): start_time = time.time() result = func(*args, kwargs) end_time = time.time() print(f'耗时:{end_time - start_time}秒') return result return inner @get_time def calculate_sum(n): sum = 0 for i in range(n): sum += i return sum calculate_sum(100000000) ``` 这样,每次调用`calculate_sum`函数时,都会自动计算并打印出其执行时间。 3. timeit模块 `timeit`模块是Python内置的性能测试工具,可以精确测量代码片段的执行时间。它有两种使用方式:直接在命令行或通过导入模块。在模块中,你可以使用`timeit.timeit`函数来运行指定的代码多次,并返回平均执行时间。例如: ```python import timeit setup_code = """ def calculate_sum(n): sum = 0 for i in range(n): sum += i """ stmt = 'calculate_sum(100000000)' number = 1 # 执行次数 execution_time = timeit.timeit(stmt, setup=setup_code, number=number) print(f"耗时: {execution_time}秒") ``` `timeit`模块的精度更高,因为它会去除测量过程中的系统开销,更准确地反映出代码本身的执行时间。 以上就是在Python中统计代码运行时间的三种常见方法。根据不同的需求,开发者可以选择适合的方式来评估和优化代码性能。