在Go語言中我們可以使用 time 包中的 Since() 函數來獲取函數的運行時間,Go語言官方文檔中對 Since() 函數的介紹是這樣的。
func Since(t Time) Duration
Since() 函數返回從 t 到現在經過的時間,等價於time.Now().Sub(t)
。
【示例】使用 Since() 函數獲取函數的運行時間。
- package main
- import (
- "fmt"
- "time"
- )
- func test() {
- start := time.Now() // 獲取當前時間
- sum := 0
- for i := 0; i < 100000000; i++ {
- sum++
- }
- elapsed := time.Since(start)
- fmt.Println("該函數執行完成耗時:", elapsed)
- }
- func main() {
- test()
- }
運行結果如下所示:
該函數執行完成耗時: 39.8933ms
上面我們提到了 time.Now().Sub() 的功能類似於 Since() 函數,想要使用 time.Now().Sub() 獲取函數的運行時間只需要把我們上面代碼的第 14 行簡單修改一下就行。
【示例 2】使用 time.Now().Sub() 獲取函數的運行時間。
- package main
- import (
- "fmt"
- "time"
- )
- func test() {
- start := time.Now() // 獲取當前時間
- sum := 0
- for i := 0; i < 100000000; i++ {
- sum++
- }
- elapsed := time.Now().Sub(start)
- fmt.Println("該函數執行完成耗時:", elapsed)
- }
- func main() {
- test()
- }
運行結果如下所示:
該函數執行完成耗時: 36.8769ms
由於計算機 CPU 及一些其他因素的影響,在獲取函數運行時間時每次的結果都有些許不同,屬於正常現象。