最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2022年11月03日 11:08:09   作者:勤奮的大熊貓  
這篇文章主要介紹了python中的代碼運(yùn)行時(shí)間獲取方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

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

這里將介紹四種常用的測(cè)試代碼運(yùn)行速度的方法。

第一種

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

import time


class 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í)間的模塊,這里不做過多討論,均類似于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)過測(cè)試,%time方法測(cè)出的時(shí)間并不準(zhǔn)確,時(shí)間波動(dòng)范圍非常大,這個(gè)是很好理解的,因?yàn)橛?jì)算機(jī)每時(shí)每刻都在處理一些進(jìn)程,也就是說計(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模塊來計(jì)算代碼塊的執(zhí)行時(shí)間

import timeit


class 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()來測(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í)告一段落。

當(dāng)然,還有一種進(jìn)階操作可以用來測(cè)試腳本文件的性能,python 腳本性能分析(超鏈接點(diǎn)擊跳轉(zhuǎn))。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Blender Python編程創(chuàng)建發(fā)光材質(zhì)示例詳解

    Blender Python編程創(chuàng)建發(fā)光材質(zhì)示例詳解

    這篇文章主要為大家介紹了Blender Python編程創(chuàng)建發(fā)光材質(zhì)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Python獲取B站粉絲數(shù)的示例代碼

    Python獲取B站粉絲數(shù)的示例代碼

    這篇文章主要介紹了Python獲取B站粉絲數(shù)的示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Python中shapefile轉(zhuǎn)換geojson的示例

    Python中shapefile轉(zhuǎn)換geojson的示例

    今天小編就為大家分享一篇關(guān)于Python中shapefile轉(zhuǎn)換geojson的示例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 詳解Python OpenCV圖像分割算法的實(shí)現(xiàn)

    詳解Python OpenCV圖像分割算法的實(shí)現(xiàn)

    圖像分割是指根據(jù)灰度、色彩、空間紋理、幾何形狀等特征把圖像劃分成若干個(gè)互不相交的區(qū)域。本文就來和大家聊聊OpenCV的圖像分割算法及基于輪廓的字符分離,感興趣的可以了解一下
    2022-08-08
  • Django應(yīng)用程序中如何發(fā)送電子郵件詳解

    Django應(yīng)用程序中如何發(fā)送電子郵件詳解

    我們常常會(huì)用到一些發(fā)送郵件的功能,比如有人提交了應(yīng)聘的表單,可以向HR的郵箱發(fā)郵件,這樣,HR不看網(wǎng)站就可以知道有人在網(wǎng)站上提交了應(yīng)聘信息。下面這篇文章就介紹了在Django應(yīng)用程序中如何發(fā)送電子郵件的相關(guān)資料,需要的朋友可以參考借鑒。
    2017-02-02
  • python3.7 的新特性詳解

    python3.7 的新特性詳解

    這篇文章主要介紹了python3.7 的新特性詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • jupyter %matplotlib inline報(bào)錯(cuò)TypeError:print_svg() got an unexpected keyword argument‘orientation‘問題

    jupyter %matplotlib inline報(bào)錯(cuò)TypeError:print_svg()&

    在Jupyter Notebook使用matplotlib時(shí)出現(xiàn)TypeError錯(cuò)誤,一般是由于ipython和matplotlib版本不兼容造成的,通過安裝ipympl并將魔法命令替換為%matplotlib ipympl,可以解決這個(gè)問題
    2024-09-09
  • python實(shí)現(xiàn)尼姆游戲

    python實(shí)現(xiàn)尼姆游戲

    這篇文章通過詳細(xì)的python代碼實(shí)現(xiàn)尼姆游戲,小編覺得挺不錯(cuò)的。現(xiàn)在分享給大家,也給大家做個(gè)參考,需要的朋友可以收藏下。一起跟隨小編過來看看吧
    2021-12-12
  • Python使用jupyter notebook查看ipynb文件過程解析

    Python使用jupyter notebook查看ipynb文件過程解析

    這篇文章主要介紹了Python使用jupyter notebook查看ipynb文件過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • python實(shí)現(xiàn)去掉字符串中的\xa0、\t、\n

    python實(shí)現(xiàn)去掉字符串中的\xa0、\t、\n

    這篇文章主要介紹了python實(shí)現(xiàn)去掉字符串中的\xa0、\t、\n方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評(píng)論

姜堰市| 佳木斯市| 合水县| 顺昌县| 平潭县| 辽阳县| 瓦房店市| 康乐县| 五原县| 阳原县| 平远县| 沙雅县| 乐平市| 龙口市| 西和县| 忻城县| 青川县| 平塘县| 米易县| 陇川县| 淳安县| 哈尔滨市| 华宁县| 丽江市| 安宁市| 肇庆市| 肥城市| 集贤县| 桃园市| 黄平县| 瑞金市| 遵化市| 白水县| 泸定县| 嫩江县| 宁安市| 溆浦县| 临安市| 东平县| 铅山县| 吴忠市|