Go語言計算函數執行時間


在Go語言中我們可以使用 time 包中的 Since() 函數來獲取函數的運行時間,Go語言官方文檔中對 Since() 函數的介紹是這樣的。

func Since(t Time) Duration

Since() 函數返回從 t 到現在經過的時間,等價於time.Now().Sub(t)

【示例】使用 Since() 函數獲取函數的運行時間。

  1. package main
  2. import (
  3.     "fmt"
  4.     "time"
  5. )
  6. func test() {
  7.     start := time.Now() // 獲取當前時間
  8.     sum := 0
  9.     for i := 0; i < 100000000; i++ {
  10.         sum++
  11.     }
  12.     elapsed := time.Since(start)
  13.     fmt.Println("該函數執行完成耗時:", elapsed)
  14. }
  15. func main() {
  16.     test()
  17. }

運行結果如下所示:

該函數執行完成耗時: 39.8933ms

上面我們提到了 time.Now().Sub() 的功能類似於 Since() 函數,想要使用 time.Now().Sub() 獲取函數的運行時間只需要把我們上面代碼的第 14 行簡單修改一下就行。

【示例 2】使用 time.Now().Sub() 獲取函數的運行時間。

  1. package main
  2. import (
  3.     "fmt"
  4.     "time"
  5. )
  6. func test() {
  7.     start := time.Now() // 獲取當前時間
  8.     sum := 0
  9.     for i := 0; i < 100000000; i++ {
  10.         sum++
  11.     }
  12.     elapsed := time.Now().Sub(start)
  13.     fmt.Println("該函數執行完成耗時:", elapsed)
  14. }
  15. func main() {
  16.     test()
  17. }

運行結果如下所示:

該函數執行完成耗時: 36.8769ms

由於計算機 CPU 及一些其他因素的影響,在獲取函數運行時間時每次的結果都有些許不同,屬於正常現象。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM