以毫秒精度测量 Go 中的函数执行时间
Go 中的挑战之一是确定函数的运行时间并在中报告它毫秒。
解决方案:利用 Go 的defer
Go 的 defer 语句为定时函数提供了便捷的解决方案。实现方法如下:
第 1 步:定义实用函数
在 Go 1.x 中定义以下实用函数:
func trace(s string) (string, time.Time) { log.Println("START:", s) return s, time.Now() } func un(s string, startTime time.Time) { endTime := time.Now() log.Println(" END:", s, "ElapsedTime in seconds:", endTime.Sub(startTime)) }
第 2 步:为您的活动计时
计时一个名为 someFunction 的函数,用trace() 和 un() 调用包装它,如下所示:
func someFunction() { defer un(trace("SOME_ARBITRARY_STRING_SO_YOU_CAN_KEEP_TRACK")) // Do your function logic here }
说明
trace() 函数被调用于函数的开始,记录开始时间。 un() 函数被推迟到函数的末尾,测量经过的时间并将其以毫秒精度打印到日志中。
自定义时间测量
This可以修改技术以通过调整 endTime.Sub(startTime) 来测量其他时间单位,例如纳秒或微秒
通过利用 Go 的 defer 语句,您可以轻松准确地测量函数执行时间(以毫秒为单位),为性能优化提供有价值的见解。
以上是如何以毫秒精度有效测量 Go 中的函数执行时间?的详细内容。更多信息请关注PHP中文网其他相关文章!