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

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

 更新時(shí)間:2020年09月18日 08:28:44   作者:勤奮的小烏賊  
這篇文章主要介紹了python 代碼運(yùn)行時(shí)間獲取方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

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

第一種:使用time模塊對代碼的運(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 模塊給所要測試的代碼的前后加上時(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è)類定義是可以去掉的,并不會影響最終的結(jié)果,%time 后面加上想要計(jì)算時(shí)間的代碼,然后編譯器就會在運(yùn)行后自動給出所測試代碼的運(yùn)行時(shí)間,但是經(jīng)過測試,%time方法測出的時(shí)間并不準(zhǔn)確,時(shí)間波動范圍非常大,這個(gè)是很好理解的,因?yàn)橛?jì)算機(jī)每時(shí)每刻都在處理一些進(jìn)程,也就是說計(jì)算機(jī)的運(yùn)行狀態(tài)每時(shí)每刻都是不同的,所以在不同的時(shí)刻測試同一段代碼的運(yùn)行時(shí)間也會得到不同的結(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會多次執(zhí)行測試代碼,并且會取它們運(yùn)行時(shí)間的平均值,并且還會計(jì)算出它們的標(biāo)準(zhǔn)差,因此這種計(jì)算方法計(jì)算的結(jié)果相對于使用%time執(zhí)行測試代碼一次是比較準(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()來測試想要測試的代碼,并且代碼以string的形式進(jìn)行輸入,并且需要設(shè)定number值,設(shè)定測試的該段代碼需要執(zhí)行的次數(shù),最終我們得到0.05363089999991644,單位是s(秒),與內(nèi)置魔法方法%timeit方法不同的是雖然也是多次計(jì)算,但是最終獲取的時(shí)間是n次執(zhí)行代碼所需的總時(shí)間而不是執(zhí)行一次的時(shí)間。

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

相關(guān)文章

  • python快速入門題目詳解

    python快速入門題目詳解

    下面小編就為大家?guī)硪黄焖偃腴Tpython的題目詳解小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2021-11-11
  • python+influxdb+shell編寫區(qū)域網(wǎng)絡(luò)狀況表

    python+influxdb+shell編寫區(qū)域網(wǎng)絡(luò)狀況表

    這篇文章主要為大家詳細(xì)介紹了python+influxdb+shell編寫區(qū)域網(wǎng)絡(luò)狀況表,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Python如何獲取文件指定行的內(nèi)容

    Python如何獲取文件指定行的內(nèi)容

    在本篇文章里小編給大家分享的是關(guān)于Python獲取文件指定行的內(nèi)容的方法,有需要的朋友們可以學(xué)習(xí)下。
    2020-05-05
  • python內(nèi)置函數(shù)zip詳解

    python內(nèi)置函數(shù)zip詳解

    這篇文章主要為大家介紹了python內(nèi)置函數(shù)zip,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Centos下實(shí)現(xiàn)安裝Python3.6和Python2共存

    Centos下實(shí)現(xiàn)安裝Python3.6和Python2共存

    這篇文章主要介紹了Centos下實(shí)現(xiàn)安裝Python3.6和Python2共存,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • python使用tkinter包實(shí)現(xiàn)進(jìn)度條

    python使用tkinter包實(shí)現(xiàn)進(jìn)度條

    python中的tkinter包是一種常見的設(shè)計(jì)程序的GUI界面用的包,本文將使用tkinter包實(shí)現(xiàn)不同風(fēng)格的進(jìn)度條,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • python rsync服務(wù)器之間文件夾同步腳本

    python rsync服務(wù)器之間文件夾同步腳本

    這篇文章主要為大家詳細(xì)介紹了python rsync服務(wù)器之間文件夾同步腳本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Python中ImportError錯(cuò)誤的詳細(xì)解決方法

    Python中ImportError錯(cuò)誤的詳細(xì)解決方法

    最近辛辛苦苦安裝完了python,最后再運(yùn)行的時(shí)候會出現(xiàn)錯(cuò)誤,所以這篇文章主要給大家介紹了關(guān)于Python中ImportError錯(cuò)誤的詳細(xì)解決方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Python使用Web框架Flask開發(fā)項(xiàng)目

    Python使用Web框架Flask開發(fā)項(xiàng)目

    本文詳細(xì)講解了Python使用Web框架Flask開發(fā)項(xiàng)目的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • python實(shí)時(shí)獲取外部程序輸出結(jié)果的方法

    python實(shí)時(shí)獲取外部程序輸出結(jié)果的方法

    今天小編就為大家分享一篇python實(shí)時(shí)獲取外部程序輸出結(jié)果的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01

最新評論

深泽县| 荥经县| 安阳县| 大同市| 汝南县| 团风县| 罗田县| 沂南县| 色达县| 嘉鱼县| 达拉特旗| 潜山县| 定州市| 碌曲县| 托克托县| 安泽县| 石家庄市| 西宁市| 娄底市| 吴江市| 察哈| 五家渠市| 宾川县| 淳安县| 教育| 遂昌县| 天峨县| 潜江市| 静海县| 三明市| 扶绥县| 东乡| 铁岭县| 凤城市| 腾冲县| 武夷山市| 仁寿县| 玉龙| 五台县| 饶阳县| 望都县|