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

Python如何統(tǒng)計函數(shù)調(diào)用的耗時

 更新時間:2024年04月25日 09:26:07   作者:小鋒學長生活大爆炸  
這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)統(tǒng)計函數(shù)調(diào)用的耗時,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下

 相比于timerit等裝飾器用法,我希望能不修改函數(shù),只統(tǒng)計函數(shù)調(diào)用的用時。常規(guī)方法是在函數(shù)調(diào)用前后添加time,比如:

# 開始計時
start_time = time.perf_counter()
 
# 調(diào)用函數(shù)
x = xxx()
 
# 結束計時
end_time = time.perf_counter()

但如果有很多這樣的函數(shù),每次都寫這么多實在太麻煩。

實際上我們可以通過with的方式來計時。所以,代碼如下:

import time
 
class Timer:
    """
    一個計時上下文管理器,用于測量代碼塊的執(zhí)行時間。
    它可以根據(jù)用戶的需求以秒或納秒為單位測量時間。
    
    屬性:
        use_ns (bool): 如果為True,則計時器以納秒為單位測量時間;如果為False,則以秒為單位。
        start (float|int): 測量開始的時間。
        end (float|int): 測量結束的時間。
        interval (float|int): 計算的開始和結束時間之間的持續(xù)時間。
    """
 
    def __init__(self, use_ns=False):
        """
        使用選擇是否使用納秒精度初始化 Timer。
        參數(shù):
            use_ns (bool): 確定是否使用納秒進行時間測量,默認為False。
        """
        self.use_ns = use_ns
        self.start = None
        self.end = None
        self.interval = None
 
    def __enter__(self):
        """
        啟動計時器。當進入上下文塊時記錄開始時間。
        返回:
            Timer: 返回自身對象,以便在上下文外部訪問屬性。
        """
        if self.use_ns:
            self.start = time.perf_counter_ns()
        else:
            self.start = time.perf_counter()
        return self
 
    def __exit__(self, exc_type, exc_value, traceback):
        """
        結束計時器。當退出上下文塊時記錄結束時間。
        此函數(shù)還計算時間間隔并打印經(jīng)過的時間。
        參數(shù):
            exc_type: 如果在上下文中引發(fā)異常,則為異常類型。
            exc_value: 如果引發(fā)異常,則為異常值。
            traceback: 如果發(fā)生異常,則為回溯詳細信息。
        返回:
            None
        """
        if self.use_ns:
            self.end = time.perf_counter_ns()
            self.interval = self.end - self.start
            print(f"經(jīng)過時間:{self.interval} 納秒")
        else:
            self.end = time.perf_counter()
            self.interval = self.end - self.start
            print(f"經(jīng)過時間:{self.interval:.6f} 秒")

用法示例:

def test_func():
    for i in range(100000):
        pass
 
# 使用 Timer 類的示例
with Timer(use_ns=True) as timer_ns:
    test_func()
print(f"記錄的時間(納秒):{timer_ns.interval}")
 
with Timer(use_ns=False) as timer_sec:
    test_func()
print(f"記錄的時間(秒):{timer_sec.interval:.6f}")

到此這篇關于Python如何統(tǒng)計函數(shù)調(diào)用的耗時的文章就介紹到這了,更多相關Python統(tǒng)計函數(shù)調(diào)用耗時內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python高級應用探索之元編程和并發(fā)編程詳解

    Python高級應用探索之元編程和并發(fā)編程詳解

    Python作為一種簡單易用且功能強大的編程語言,廣泛應用于各個領域,本文主要來和大家一起探索一下Python中的優(yōu)化技巧、元編程和并發(fā)編程,希望對大家有所幫助
    2023-11-11
  • Python優(yōu)雅擴展字典Dict的三種方法詳解

    Python優(yōu)雅擴展字典Dict的三種方法詳解

    供了DefaultDict、TypedDict和PersistentDict三個實用案例,比較了不同實現(xiàn)方式的優(yōu)缺點,并給出了最佳實踐建議,字典子類機制讓開發(fā)者能夠定制既保持核心特性又具備特殊功能的數(shù)據(jù)結構,為Python編程提供了更多可能性,
    2026-02-02
  • Python如何重新加載模塊

    Python如何重新加載模塊

    這篇文章主要介紹了Python如何重新加載模塊,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • 如何實現(xiàn)Django Rest framework版本控制

    如何實現(xiàn)Django Rest framework版本控制

    這篇文章主要介紹了如何實現(xiàn)Django Rest framework版本控制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • Python文件打包工具一站式指南

    Python文件打包工具一站式指南

    這篇文章主要為大家介紹了Python文件打包工具一站式指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Python文件的操作處理詳解

    Python文件的操作處理詳解

    今天這篇文章給大家介紹Python文件的操作處理,文章內(nèi)容介紹的很詳細,有需要的可以參考借鑒,希望能夠給你帶來幫助
    2021-10-10
  • Python中暫存上傳圖片的方法

    Python中暫存上傳圖片的方法

    這篇文章主要介紹了Python中暫存上傳圖片的方法,本文使用cStringIO模塊實現(xiàn)暫存功能,本文給出簡單使用示例,需要的朋友可以參考下
    2015-02-02
  • django使用channels實現(xiàn)通信的示例

    django使用channels實現(xiàn)通信的示例

    這篇文章主要介紹了django使用channels實現(xiàn)通信的示例,幫助大家更好的理解和學習django框架,感興趣的朋友可以了解下
    2020-10-10
  • python爬取全國水雨情信息詳解

    python爬取全國水雨情信息詳解

    這篇文章主要為大家詳細介紹了python爬取全國水雨情信息,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • python基于Pandas讀寫MySQL數(shù)據(jù)庫

    python基于Pandas讀寫MySQL數(shù)據(jù)庫

    這篇文章主要介紹了python基于Pandas讀寫MySQL數(shù)據(jù)庫,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-04-04

最新評論

阳春市| 吴桥县| 中超| 无棣县| 平江县| 乌兰浩特市| 安阳县| 晋城| 灵川县| 大厂| 珲春市| 昌乐县| 秦安县| 洛阳市| 郓城县| 正定县| 鱼台县| 福安市| 崇礼县| 涞源县| 武山县| 永丰县| 和顺县| 郯城县| 宿松县| 乌什县| 齐齐哈尔市| 涟水县| 漳浦县| 宜兰市| 海安县| 太保市| 瑞安市| 大埔县| 德化县| 天长市| 会理县| 贺兰县| 军事| 鹿邑县| 兴安县|