Golang 如何测量执行时间

Golang 如何测量执行时间

Go 中,我们有一个名为 time 的包,存在于Go的标准库中。这个 时间 包包含了不同的有用的函数,我们可以用它来计算 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)
}
Go

在上面的代码中。

  • 我们首先使用 time.Now() 函数,它将为我们提供那一刻的准确时间。

  • 然后,我们在 time.Sleep() 函数的帮助下,让程序简单地等待。

  • 最后,为了得到for循环的实际时间,我们将从 time.Now() 函数得到的结果传递给 time.Since() 函数,我们就得到了结果。

输出

如果我们在上述代码上运行 go run main.go 命令,那么我们将在终端有以下输出。

Measuring time in Go
The `for` loop took 7.512026652s
Go

我们也可以使用不同的模式,我们将使用相同的函数和一个递延函数。

例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

输出

如果我们在上述代码上运行命令 go run main.go ,那么我们在终端会有以下输出。

This function took 2.000122676s time
Go

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册