亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

<技巧>python模塊性能測試

標簽:
Python
算法是程序的灵魂,优秀的算法能给程序的效率带来极大的提升,而算法的优劣,往往要经过大量的测试.

在硬件环境基本不变的前提下,对算法实验的次数越多,测试算法运行效率的结果也就越接近真实值.

python内置的性能分析模块,可通过指定次数的反复测试,来对算法的运行时间进行累加,透过对比运行时间的长短,我们可以更直观的了解,不同算法之间的优劣.


以python列表的内置函数append和insert为例

python内置的性能测试方法timeit.Timer.timeit()可用于对程序片段的执行耗时进行计数

以python列表insert方法和append方法快速创建1至1000的列表为例:

执行100次

700

100次

执行1000次

700

1000次

执行10000次

700

10000次

insert与append执行10000次相差了1.6秒,在不影响需求的情况下,建议尽量使用append提升效率

15040813218122.jpg

源码:

import sysimport 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()





點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消