Go 中的計時函數和計算運行時間
在Go 中,你可以利用time 套件來精確測量任何函數的運行時間並檢索以毫秒為單位的值。一個方便的方法是使用 defer 功能。
在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)) }
然後您可以在程式碼中呼叫這些函數如下所示:
func someFunction() { defer un(trace("SOME_ARBITRARY_STRING_SO_YOU_CAN_KEEP_TRACK")) //do a bunch of stuff here... }
利用defer 語句,在someFunction() 開始時呼叫trace() 函數,而un() 函數則延後到someFunction() 完成後才執行。這種方法提供了準確的運行時日誌記錄,同時保持了程式碼簡單性。
請注意,提供的程式碼範例使用日誌記錄語句,這可能會稍微影響執行時間測量的精確度。如果更高的準確性至關重要,請考慮嘗試使用可最大限度減少日誌記錄開銷的替代技術。
以上是如何使用“defer”關鍵字測量 Go 中的函數運行時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!