国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python 代碼運(yùn)行時(shí)間獲取方式詳解

瀏覽:92日期:2022-07-10 18:45:19

我們知道為了提高代碼的運(yùn)行速度,我們需要對(duì)書寫的python代碼進(jìn)行性能測(cè)試,而代碼性能的高低的直接反饋是電腦運(yùn)行代碼所需要的時(shí)間。這里將介紹四種常用的測(cè)試代碼運(yùn)行速度的方法。

第一種:使用time模塊對(duì)代碼的運(yùn)行時(shí)間進(jìn)行統(tǒng)計(jì),代碼如下:

import timeclass Debug: def mainProgram(self): start_time = time.time() for i in range(100): print(i) end_time = time.time() print(f'the running time is: {end_time - start_time} s') if __name__ == '__main__': main = Debug() main.mainProgram()

我們采用time 模塊給所要測(cè)試的代碼的前后加上時(shí)間戳,一個(gè)記為start_time,一個(gè)記作end_time,最后代碼塊的運(yùn)行時(shí)間為end_time-start_time,單位為s(秒)。當(dāng)然在python中還有許多的記錄時(shí)間的模塊,這里不做過(guò)多討論,均類似于time模塊,實(shí)現(xiàn)思路上一致,代碼實(shí)現(xiàn)上大同小異。

第二種:使用IPython的Built-in magic commands,%time,代碼如下:

class Debug: def mainProgram(self): %time for i in range(100): print(i) main = Debug()main.mainProgram()'''Wall time: 1.99 ms'''

這個(gè)類定義是可以去掉的,并不會(huì)影響最終的結(jié)果,%time 后面加上想要計(jì)算時(shí)間的代碼,然后編譯器就會(huì)在運(yùn)行后自動(dòng)給出所測(cè)試代碼的運(yùn)行時(shí)間,但是經(jīng)過(guò)測(cè)試,%time方法測(cè)出的時(shí)間并不準(zhǔn)確,時(shí)間波動(dòng)范圍非常大,這個(gè)是很好理解的,因?yàn)橛?jì)算機(jī)每時(shí)每刻都在處理一些進(jìn)程,也就是說(shuō)計(jì)算機(jī)的運(yùn)行狀態(tài)每時(shí)每刻都是不同的,所以在不同的時(shí)刻測(cè)試同一段代碼的運(yùn)行時(shí)間也會(huì)得到不同的結(jié)果。

第三種:用IPython的另一個(gè)Built-in magic commands,%timeit,使用方法類似于%time,代碼如下:

class Debug: def mainProgram(self): %timeit for i in range(100): print(i) main = Debug()main.mainProgram()'''8.53 ms ± 452 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)'''

我們可以看到得到的結(jié)果是:每個(gè)循環(huán)8.53 ms±452 µs(平均±標(biāo)準(zhǔn)偏差,共運(yùn)行7次,每個(gè)循環(huán)100個(gè))%timeit相比于%time,%timeit會(huì)多次執(zhí)行測(cè)試代碼,并且會(huì)取它們運(yùn)行時(shí)間的平均值,并且還會(huì)計(jì)算出它們的標(biāo)準(zhǔn)差,因此這種計(jì)算方法計(jì)算的結(jié)果相對(duì)于使用%time執(zhí)行測(cè)試代碼一次是比較準(zhǔn)確的。

第四種:導(dǎo)入timeit模塊來(lái)計(jì)算代碼塊的執(zhí)行時(shí)間

import timeitclass Debug: def mainProgram(self): result = timeit.timeit(stmt='for i in range(100): print(i)', number=10) print(result)main = Debug()main.mainProgram()'''0.05363089999991644 s'''

導(dǎo)入timeit模塊后使用timeit.timeit()來(lái)測(cè)試想要測(cè)試的代碼,并且代碼以string的形式進(jìn)行輸入,并且需要設(shè)定number值,設(shè)定測(cè)試的該段代碼需要執(zhí)行的次數(shù),最終我們得到0.05363089999991644,單位是s(秒),與內(nèi)置魔法方法%timeit方法不同的是雖然也是多次計(jì)算,但是最終獲取的時(shí)間是n次執(zhí)行代碼所需的總時(shí)間而不是執(zhí)行一次的時(shí)間。

至此,代碼的運(yùn)行速度測(cè)試方法的介紹暫時(shí)告一段落。(以后可能會(huì)進(jìn)一步更新更加全面的),更多相關(guān)python 代碼運(yùn)行時(shí)間 內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 欧美透逼视频 | 免费人成在线观看网站品爱网 | 在线观看中文字幕一区 | 一级毛片美国aaj毛片 | 精品日韩在线视频一区二区三区 | 国产成人免费片在线观看 | 一道精品视频一区二区三区图片 | 亚洲欧美日韩另类精品一区二区三区 | 国产v片在线播放免费观 | 91国语对白| 手机在线观看黄色网址 | 久久99久久成人免费播放 | 精品国产自在在线在线观看 | 精品欧美成人bd高清在线观看 | 欧美亚洲在线观看 | 久久久精品2018免费观看 | 欧美三级网 | 久久精品国内偷自一区 | 亚洲精品久久一区二区无卡 | 日本www高清免费视频观看 | 99爱在线精品视频免费观看9 | 亚洲天堂影院在线观看 | 美国一级免费 | 亚州综合 | 美女被爆免费视频软件 | 免费视频一区二区三区四区 | 日韩一区二区三区不卡视频 | 欧美日本高清 | 成人综合在线视频免费观看 | 中文字幕一二三区乱码老 | 91精选视频 | 日韩精品久久一区二区三区 | 91亚洲自偷手机在线观看 | 好看欧美视频高清va | 深夜福利视频在线观看免费播放 | 亚洲图片在线视频 | 女人张开腿让男人桶视频 | 欧美久草 | 欧美一级视频在线 | 午夜影院黄 | 不卡一区在线观看 |