算法是程序的灵魂,优秀的算法能给程序的效率带来极大的提升,而算法的优劣,往往要经过大量的测试. 在硬件环境基本不变的前提下,对算法实验的次数越多,测试算法运行效率的结果也就越接近真实值.
python内置的性能测试方法timeit.Timer.timeit()可用于对程序片段的执行耗时进行计数
100次
1000次
10000次
源码:
import sys
import timeit
# 使用insert创建1~1000的数组
def insert_num():
thousand_list1 = list()
for i in range(1, 1001):
thousand_list1.insert(len(thousand_list1), i)
#print (thousand_list1)
# 使用append创建1~1000的数组
def append_num():
thousand_list2 = list()
for i in range(1, 1001):
thousand_list2.append(i)
#print("append_num",thousand_list2)
#使用列表生成式生成
def main():
name, num = sys.argv
num = int(num)
in_obj = timeit.Timer("insert_num()","from __main__ import insert_num")
print("使用insert方法往列表插入1至1000, 方法反复执行%d次共耗时:"%num,in_obj.timeit(number=num),"秒")
in_obj = timeit.Timer("append_num()","from __main__ import append_num")
print("使用append方法依次往列表插入1至1000,方法反复执行 %d次共耗时:"%num,in_obj.timeit(number=num),"秒")
if __name__ == "__main__":
main()