欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中的代碼運行時間獲取方式

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

我們知道為了提高代碼的運行速度,我們需要對書寫的python代碼進行性能測試,而代碼性能的高低的直接反饋是電腦運行代碼所需要的時間。

這里將介紹四種常用的測試代碼運行速度的方法。

第一種

使用time模塊對代碼的運行時間進行統(tǒng)計,代碼如下:

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 模塊給所要測試的代碼的前后加上時間戳,一個記為start_time,一個記作end_time,最后代碼塊的運行時間為end_time-start_time,單位為s(秒)。

當(dāng)然在python中還有許多的記錄時間的模塊,這里不做過多討論,均類似于time模塊,實現(xiàn)思路上一致,代碼實現(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
"""

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

第三種

用IPython的另一個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é)果是:每個循環(huán)8.53 ms±452 µs(平均±標(biāo)準(zhǔn)偏差,共運行7次,每個循環(huán)100個)%timeit相比于%time,%timeit會多次執(zhí)行測試代碼,并且會取它們運行時間的平均值,并且還會計算出它們的標(biāo)準(zhǔn)差,因此這種計算方法計算的結(jié)果相對于使用%time執(zhí)行測試代碼一次是比較準(zhǔn)確的。

第四種

導(dǎo)入timeit模塊來計算代碼塊的執(zhí)行時間

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的形式進行輸入,并且需要設(shè)定number值,設(shè)定測試的該段代碼需要執(zhí)行的次數(shù),最終我們得到0.05363089999991644,單位是s(秒),與內(nèi)置魔法方法%timeit方法不同的是雖然也是多次計算,但是最終獲取的時間是n次執(zhí)行代碼所需的總時間而不是執(zhí)行一次的時間。

至此,代碼的運行速度測試方法的介紹暫時告一段落。

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

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

相關(guān)文章

  • 關(guān)于Python包導(dǎo)入報錯的問題總結(jié)

    關(guān)于Python包導(dǎo)入報錯的問題總結(jié)

    這篇文章主要介紹了關(guān)于Python包導(dǎo)入報錯的問題總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • python爬取之json、pickle與shelve庫的深入講解

    python爬取之json、pickle與shelve庫的深入講解

    這篇文章主要給大家介紹了關(guān)于python爬取之json、pickle與shelve庫的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • python中session的使用案例詳解

    python中session的使用案例詳解

    這篇文章主要介紹了python?session使用,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • python write無法寫入文件的解決方法

    python write無法寫入文件的解決方法

    今天小編就為大家分享一篇python write無法寫入文件的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python SMTP配置參數(shù)并發(fā)送郵件

    Python SMTP配置參數(shù)并發(fā)送郵件

    這篇文章主要介紹了Python SMTP配置參數(shù)并發(fā)送郵件,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • Python利用pyodbc庫將文件信息插入Access數(shù)據(jù)庫

    Python利用pyodbc庫將文件信息插入Access數(shù)據(jù)庫

    在日常編程工作中,我們經(jīng)常需要處理文件和文件夾,所以本文將介紹如何使用Python編程語言和wxPython庫創(chuàng)建一個簡單的文件瀏覽器界面,使用戶能夠選擇文件夾并將文件信息插入到Access數(shù)據(jù)庫中,需要的可以參考下
    2023-08-08
  • pandas數(shù)據(jù)清洗,排序,索引設(shè)置,數(shù)據(jù)選取方法

    pandas數(shù)據(jù)清洗,排序,索引設(shè)置,數(shù)據(jù)選取方法

    下面小編就為大家分享一篇pandas數(shù)據(jù)清洗,排序,索引設(shè)置,數(shù)據(jù)選取方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • django配置連接數(shù)據(jù)庫及原生sql語句的使用方法

    django配置連接數(shù)據(jù)庫及原生sql語句的使用方法

    這篇文章主要給大家介紹了關(guān)于django配置連接數(shù)據(jù)庫,以及原生sql語句的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 5行Python代碼實現(xiàn)圖像分割的步驟詳解

    5行Python代碼實現(xiàn)圖像分割的步驟詳解

    這篇文章主要介紹了5行Python代碼實現(xiàn)圖像分割的步驟詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 解決pytorch 的state_dict()拷貝問題

    解決pytorch 的state_dict()拷貝問題

    這篇文章主要介紹了解決pytorch 的state_dict()拷貝問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03

最新評論