如何在 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