首頁 > 後端開發 > Golang > 主體

如何以毫秒精度有效測量 Go 中的函數執行時間?

Susan Sarandon
發布: 2024-11-12 05:22:02
原創
211 人瀏覽過

How can I efficiently measure function execution time in Go with millisecond precision?

以毫秒精度測量Go 中的函數執行時間

Go 中的挑戰之一是確定函數的運行時間並在中報告它毫秒。

解:利用 Go 的 defer

Go 的 defer 語句為計時函數提供了便利的解。實作方法如下:

第1 步:定義實用函數

在Go 1.x 定義下列實用函數:

func trace(s string) (string, time.Time) {
    log.Println("START:", s)
    return s, time.Now()
}

func un(s string, startTime time.Time) {
    endTime := time.Now()
    log.Println("  END:", s, "ElapsedTime in seconds:", endTime.Sub(startTime))
}
登入後複製

第2 步:為函數計時

要為名為someFunction 的函數計時,請使用trace() 和un() 呼叫將其包裝起來,如下所示:

func someFunction() {
    defer un(trace("SOME_ARBITRARY_STRING_SO_YOU_CAN_KEEP_TRACK"))

    // Do your function logic here
}
登入後複製

說明

在函數的開頭呼叫trace()函數,記錄開始時間。 un() 函數被推遲到函數的末尾,測量經過的時間並將其以毫秒精度列印到日誌中。

自訂時間測量

This可以透過調整 endTime.Sub(startTime) 計算來修改技術以測量其他時間單位,例如奈秒或微秒。

透過利用 Go 的 defer 語句,您可以輕鬆準確地以毫秒為單位測量函數執行時間,提供對於效能最佳化的寶貴見解。

以上是如何以毫秒精度有效測量 Go 中的函數執行時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板