衡量Golang代码执行时间

衡量Golang代码执行时间

实际开发中经常需要衡量代码性能,包括代码片段或业务函数。本文介绍如何衡量Golang代码执行时间,既简洁又实用。

1. 代码片段执行时间

使用time.Now()time.Since()可衡量代码片段的执行时间:

package main

import (
	"fmt"
	"time"
)

func main() {
	fmt.Println("简单衡量 Golang 代码片段执行时间示例")
	fmt.Println("")

	start := time.Now()

	//measuring the durration of the for loop
	for index := 0; index < 10; index++ {
		time.Sleep(500 * time.Millisecond)
	}
	elapsed := time.Since(start)
	fmt.Printf("The `for` loop took %s", elapsed)
}

上面示例中循环迭代10次,每次睡眠500毫秒,模拟执行复杂任务。

输出如下:

简单衡量 Golang 代码片段执行时间示例

The `for` loop took 5.000286s

循环10次,每次500毫秒,总共时间约5秒多。

2. 函数执行时间

为了衡量函数执行时间,我们创建一个专门函数衡量执行时间,与业务代码分离,增加复用性。
在执行任务开始时使用defer,确保函数执行完毕之前调用衡量执行时间函数。

package main

import (
	"fmt"
	"time"
)

func timeMeasurement(start time.Time) {
	elapsed := time.Since(start)
	fmt.Printf("Execution time: %s", elapsed)
}

func workerFunction() {
	fmt.Println("Running 'workerFunction' function")
	for index := 0; index < 10; index++ {
		time.Sleep(500 * time.Millisecond)
	}
}

func main() {
	fmt.Println("Function time measurement Golang Example")
	fmt.Println("")

	defer timeMeasurement(time.Now())
	workerFunction()
}

当然defer timeMeasurement(time.Now())也可以放在workerFunction函数体开头位置,为了不侵入业务代码,我们放在其被执行之前位置。输出如下:

衡量Golang 函数执行时间示例

Running 'workerFunction' function
Execution time: 5.0032861s

3. 总结

本文介绍了Golang衡量执行时间的方法,包括代码片段和函数的执行时间。主要使用defer关键字实现延迟机制,确保执行完成之前进计算执行时间。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章