日韩欧乱色一区二区三区在线_久久―日本道色综合久久_欧美日本一区二区_网曝91综合精品门事件在线

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > Python單條語句計時

Python單條語句計時

來源:千鋒教育
發布人:xqq
時間: 2023-11-07 20:17:11 1699359431

上下文管理器和timeit.timeit()方法也適合單條語句計時。除此之外,也可通過命令行執行timeit計時,命令選項詳見官方幫助。

通過命令行執行timeit計時,可方便地測量和對比相同功能不同實現表達式的性能:

E:\PyTest>python-mtimeit-r5"'-'.join(str(n)forninrange(100))"

10000loops,bestof5:32.8usecperloop

E:\PyTest>python-mtimeit-r5"'-'.join([str(n)forninrange(100)])"

10000loops,bestof5:29.8usecperloop

E:\PyTest>python-mtimeit-r5"'-'.join(map(str,range(100)))"

10000loops,bestof5:21.8usecperloop

以上三條待計時的Python表達式均被重復測試5次,每次測試中調用該表達式10000次。相同機器上運行的其他程序可能會影響計時測量,因此重復測量若干次再選取最佳結果(besttime),以保證計時的準確性。考慮到后臺進程等因素通常會增加總耗時,因此最佳結果取重復測量的最小值(添加-v選項可查看各次測量值),而非平均值。由本例輸出結果可知,map快于列表解析,而列表解析快于生成器(生成器表達式用作參數時可省略外部的括號)。注意,這三者的快慢對比會因場景而異。例如,[xforxinrange(10000)]比map(lambdax:x,range(10000))快三倍。因此,應根據Profiler工具的實測值而非"經驗"來分析性能。

此外,需注意雙引號和單引號的內外位置。在作者的Windows主機上外單內雙會觸發"EOLwhilescanningstringliteral"的語法錯誤,而在Linux主機上外單內雙和外雙內單均可正確解析。

再舉一例:

E:\PyTest>python-mtimeit-r5-s"importmath""math.sqrt(255)"

10000000loops,bestof5:0.188usecperloop

E:\PyTest>

E:\PyTest>python-mtimeit-r5-s"frommathimportsqrt""sqrt(255)"

10000000loops,bestof5:0.143usecperloop

類似地,此處Windows主機只接受雙引號,而Linux主機單雙"通吃"。由輸出結果可知,使用from語句導入比常規導入更快。同時也可看到,通過導入目標模塊,timeit命令行也可對其函數甚至整個模塊(存在入口函數時)計時。

最后是兩點忠告:

進行性能評估時,要牢記任何測量結果只是一個估算值。即使相當可靠的計時工具,多次測量的結果也很可能有所出入。謹慎選取最佳結果,才能盡可能保證評估的準確性。

盡量使用標準庫提供的計時工具,而不要自己編寫計時函數。因為普通開發者難以全面考慮處理器時間片、后臺持續或間歇運行的程序(如定時更新或殺毒)、網絡連接、結果緩存、編譯優化等多方面因素,導致自定義計時工具精度不高,某些情況下甚至完全偏離真實數據。

以上內容為大家介紹了Python單條語句計時,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。

tags: python培訓
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 平乡县| 叙永县| 穆棱市| 清水县| 扎赉特旗| 青岛市| 定兴县| 泌阳县| 深水埗区| 星子县| 岳池县| 昌图县| 封开县| 丽水市| 万山特区| 陆川县| 万源市| 尚志市| 金堂县| 通河县| 万宁市| 镶黄旗| 安溪县| 金塔县| 达拉特旗| 南澳县| 惠来县| 昌图县| 堆龙德庆县| 织金县| 邯郸市| 阳泉市| 百色市| 周口市| 建瓯市| 通城县| 锡林郭勒盟| 武功县| 南和县| 枣强县| 肥西县|