Go语言如何获取函数执行时间


这篇文章主要介绍了Go语言如何获取函数执行时间的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Go语言如何获取函数执行时间文章都会有所收获,下面我们一起来看看吧。 在Go语言中,可以使用time包中的Since()函数来获取函数执行时间。在函数执行之前设置一个起始时间,并在函数运行结束时获取从起始时间到现在的时间间隔,这个时间间隔就是函数的执行时间;而函数执行时间可以使用time.Since()函数计算,语法“time.Since(t)”,会返回从t到现在经过的时间。使用time.Since计算执行时间函数的运行时间的长短是衡量这个函数性能的重要指标,特别是在对比和基准测试中,要得到函数的运行时间,最简单的办法就是在函数执行之前设置一个起始时间,并在函数运行结束时获取从起始时间到现在的时间间隔,这个时间间隔就是函数的运行时间。在Go语言中我们可以使用 time 包中的 Since() 函数来获取函数的运行时间,Go语言官方文档中对 Since() 函数的介绍是这样的。

funcSince(tTime)Duration

Since() 函数返回从 t 到现在经过的时间,等价于time.Now().Sub(t)。示例1:使用 Since() 函数获取函数的运行时间

packagemain
import(
"fmt"
"time"
)
functest(){
start:=time.Now()//获取当前时间
sum:=0
fori:=0;i

运行结果如下所示:

该函数执行完成耗时:39.8933ms

上面我们提到了 time.Now().Sub() 的功能类似于 Since() 函数,想要使用 time.Now().Sub() 获取函数的运行时间只需要把我们上面代码的第 14 行简单修改一下就行。示例2:使用 time.Now().Sub() 获取函数的运行时间

packagemain
import(
"fmt"
"time"
)
functest(){
start:=time.Now()//获取当前时间
sum:=0
fori:=0;i

运行结果如下所示:

该函数执行完成耗时:36.8769ms

由于计算机 CPU 及一些其他因素的影响,在获取函数运行时间时每次的结果都有些许不同,属于正常现象。扩展知识:使用time.Now().Sub()计算时间差我们只需将time.Since()替换成 time.Now().Sub() 即可,如下:

start:=time.Now()//获取当前时间
sum:=0
fori:=0;i

其实time.Since内部调用了Sub函数,我们进入time包看,注释的意思是,Since返回从t开始经过的时间, time.Since 是 time.Now().Sub(t) 的简写方式,srctimetime.go 923:6

//Sincereturnsthetimeelapsedsincet.
//Itisshorthandfortime.Now().Sub(t).
funcSince(tTime)Duration{
varnowTime
ift.wall&hasMonotonic!=0{
//Commoncaseoptimization:ifthasmonotonictime,thenSubwilluseonlyit.
now=Time{hasMonotonic,runtimeNano()-startNano,nil}
}else{
now=Now()
}
returnnow.Sub(t)免费云主机域名
}

当我们也可以使用 time.Now().Sub(start).Seconds()获取经过多少秒,Hours获取经过的小时数等,对应的也可以简写为time.Since(start).Seconds()、time.Since(start).Seconds()等。关于“Go语言如何获取函数执行时间”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Go语言如何获取函数执行时间”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注百云主机行业资讯频道。

相关推荐: php如何实现raw传送数据

这篇“php如何实现raw传送数据库”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php如何实现raw传送数据库”文章吧。 php实现raw传送…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 02/28 22:58
下一篇 02/28 22:58

相关推荐