一区二区三区中文国产亚洲_另类视频区第一页_日韩精品免费视频_女人免费视频_国产综合精品久久亚洲

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > Python單條語(yǔ)句計(jì)時(shí)

Python單條語(yǔ)句計(jì)時(shí)

來(lái)源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-11-07 20:17:11 1699359431

上下文管理器和timeit.timeit()方法也適合單條語(yǔ)句計(jì)時(shí)。除此之外,也可通過(guò)命令行執(zhí)行timeit計(jì)時(shí),命令選項(xiàng)詳見官方幫助。

通過(guò)命令行執(zhí)行timeit計(jì)時(shí),可方便地測(cè)量和對(duì)比相同功能不同實(shí)現(xiàn)表達(dá)式的性能:

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

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

此外,需注意雙引號(hào)和單引號(hào)的內(nèi)外位置。在作者的Windows主機(jī)上外單內(nèi)雙會(huì)觸發(fā)"EOLwhilescanningstringliteral"的語(yǔ)法錯(cuò)誤,而在Linux主機(jī)上外單內(nèi)雙和外雙內(nèi)單均可正確解析。

再舉一例:

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主機(jī)只接受雙引號(hào),而Linux主機(jī)單雙"通吃"。由輸出結(jié)果可知,使用from語(yǔ)句導(dǎo)入比常規(guī)導(dǎo)入更快。同時(shí)也可看到,通過(guò)導(dǎo)入目標(biāo)模塊,timeit命令行也可對(duì)其函數(shù)甚至整個(gè)模塊(存在入口函數(shù)時(shí))計(jì)時(shí)。

最后是兩點(diǎn)忠告:

進(jìn)行性能評(píng)估時(shí),要牢記任何測(cè)量結(jié)果只是一個(gè)估算值。即使相當(dāng)可靠的計(jì)時(shí)工具,多次測(cè)量的結(jié)果也很可能有所出入。謹(jǐn)慎選取最佳結(jié)果,才能盡可能保證評(píng)估的準(zhǔn)確性。

盡量使用標(biāo)準(zhǔn)庫(kù)提供的計(jì)時(shí)工具,而不要自己編寫計(jì)時(shí)函數(shù)。因?yàn)槠胀ㄩ_發(fā)者難以全面考慮處理器時(shí)間片、后臺(tái)持續(xù)或間歇運(yùn)行的程序(如定時(shí)更新或殺毒)、網(wǎng)絡(luò)連接、結(jié)果緩存、編譯優(yōu)化等多方面因素,導(dǎo)致自定義計(jì)時(shí)工具精度不高,某些情況下甚至完全偏離真實(shí)數(shù)據(jù)。

以上內(nèi)容為大家介紹了Python單條語(yǔ)句計(jì)時(shí),希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
Python 決策樹算法思想

決策樹(decisiontree)是一個(gè)樹結(jié)構(gòu)(可以是二叉樹或者非二叉樹)。決策樹分為分類樹和回歸樹兩種,分類樹對(duì)離散變量做決策樹,回歸樹對(duì)連續(xù)變量做...詳情>>

2023-11-07 23:10:00
Python C4.5算法

ID3算法的作者昆蘭基于上面的不足,對(duì)ID3算法做了改進(jìn),這就是C4.5算法,也許你會(huì)問(wèn),為什么不叫ID4,ID5之類的名字呢?那是因?yàn)闆Q策樹當(dāng)時(shí)太火...詳情>>

2023-11-07 23:02:48
Python 面向過(guò)程

python面向過(guò)程優(yōu)點(diǎn):復(fù)雜的問(wèn)題流程化,進(jìn)而簡(jiǎn)單化(一個(gè)復(fù)雜的問(wèn)題,分成一個(gè)個(gè)小的步驟去實(shí)現(xiàn),實(shí)現(xiàn)小的步驟將會(huì)非常簡(jiǎn)單)舉個(gè)典型的面向過(guò)程...詳情>>

2023-11-07 22:55:36
Python編程規(guī)范的重要性

首先談一下注釋:注釋不止是為了自己以后看的更清楚,還是為了以后的開發(fā)人員所準(zhǔn)備的,其實(shí)一段時(shí)間后,當(dāng)需要對(duì)程序做一些修改或者是改正某個(gè)...詳情>>

2023-11-07 22:37:35
Python 基本語(yǔ)句

1.條件語(yǔ)句在進(jìn)行邏輯判斷時(shí),我們需要用到條件語(yǔ)句,Python提供了if、elif、else來(lái)進(jìn)行邏輯判斷。格式如下所示:if判斷條件1:執(zhí)行語(yǔ)句1...elif...詳情>>

2023-11-07 22:30:23