timeit
是一个常见的用于评测代码执行时间的库,有助于用其评测代码的性能。话不多说,直接来看示例。
这个示例是判断有序数组中用循环的方法查找一个目标数字和用二分查找目标数字的耗时对比。下面示例中的 bisect
使用方法可以参照这个链接。
# -*- coding: utf-8 -*-
'''
@Time : 2021/12/20
@Author : Yanyuxiang
@Email : yanyuxiangtoday@163.com
@FileName: quick_start_timeit.py
@Software: VSCode
'''
import timeit
import bisect
if __name__ == '__main__':
data_list = list(range(10**5))
target = 99999
loop_time_cost = timeit.timeit(
stmt='data_list.index(target)', # Function to test time.
globals=globals(), # Using global modules.
number=100, # Repeat times.
)
half_search_time_cost = timeit.timeit(
stmt='bisect.bisect_left(data_list, target)',
globals=globals(),
number=100,
)
print(f'Loop time cost: {loop_time_cost}.')
print(f'Half search time cost: {half_search_time_cost}.')
print(f'(Loop time cost) / (half search time cost): '
f'{loop_time_cost / half_search_time_cost}.')
>>> python3 quick_start_timeit.py
Loop time cost: 0.073760083.
Half search time cost: 2.412499999999984e-05.
(Loop time cost) / (half search time cost): 3057.4127668393985.
可以看出 timeit
评测了语句的耗时,并且在这个示例中二分查找比循环查找快了 3057 倍,随着数据量增加差异会更多。
博主会持续更新一些人工智能领域的知识和实践、工作中遇到的问题和感悟、高效工作的方法和技巧,如果喜欢请关注、点赞、收藏支持