如何在 Golang 中測量執行時間?
在 Go 中,我們有一個名為 time 的包,它存在於 Go 的標準庫中。這個 time 包包含不同的實用函式,我們可以用它們來計算程式碼塊甚至 Go 中函式所花費的時間。
最常用的函式是 time.Sleep(),time.Since() 和 time.Now()。在本文中,我們將瞭解如何使用所有這些函式。
讓我們首先考慮一個非常基本的例子,我們將使用所有這些函式。
示例 1
請考慮以下所示的程式碼。
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println("Measuring time in Go")
start := time.Now()
for idx := 0; idx < 10; idx++ {
time.Sleep(751 * time.Millisecond)
}
timeElapsed := time.Since(start)
fmt.Printf("The `for` loop took %s", timeElapsed)
}在上面的程式碼中,
我們首先使用 time.Now() 函式,它將提供我們當前的精確時間,
然後我們簡單地使用 time.Sleep() 函式讓程式等待。
最後,為了獲取 for 迴圈實際花費的時間,我們將從 time.Now() 函式獲得的結果傳遞給 time.Since() 函式,然後我們就得到了結果。
輸出
如果我們在上述程式碼上執行命令 go run main.go,那麼我們將在終端中獲得以下輸出。
Measuring time in Go The `for` loop took 7.512026652s
我們還可以使用不同的模式,其中我們將使用相同的函式以及一個延遲函式。
示例 2
請考慮以下所示的程式碼。
package main
import (
"fmt"
"time"
)
func timeElapsed() func() {
start := time.Now()
return func() {
timeElapsed := time.Since(start)
fmt.Println("This function took", timeElapsed, "time")
}
}
func main() {
defer timeElapsed()()
time.Sleep(time.Second * 2)
}輸出
如果我們在上述程式碼上執行命令 go run main.go,那麼我們將在終端中獲得以下輸出。
This function took 2.000122676s time
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP