在Go 中精確測量持續時間
雖然大多數應用程式使用標準時間包來測量持續時間,但解決其局限性至關重要獲得準確的結果。 time.Now() 依賴系統時間,系統時間可能會受到時區變更以及與 NTP 伺服器的時鐘同步的影響。
為了克服這些挑戰,Go 提供了不受外部時間影響的「單調時鐘」調整。從 Go 1.9 開始,Go 中的持續時間自動利用這個單調時鐘。
這表示以下程式碼總是計算約20 毫秒的正經過時間,即使掛鐘在定時操作期間發生變化:
start := time.Now() ... operation that takes 20 milliseconds ... t := time.Now() elapsed := t.Sub(start)
其他習慣用法,例如time.Since(start) 、time.Until(deadline) 和time.Now().Before(deadline) 也能抵抗掛鐘重置。
因此,要精確測量 Go 中的執行時間,只需使用 time 套件的 time.Now() 和 time.Sub()功能。這些功能現在可確保經過的時間測量一致且不受系統時鐘調整的影響。
以上是如何精確測量 Go 的執行時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!