美文网首页程序员
如何优雅地打印函数的运行时长

如何优雅地打印函数的运行时长

作者: yellowone | 来源:发表于2020-07-06 16:21 被阅读0次

    我们经常有这样一个需求,如果偶发的几个请求会突然变慢,想知道是哪个函数运行导致的变慢,那我们想把这个函数的运行时长打印出来定位问题,那我们可以这样定义一个函数。

    func traceRunTime(msg string) func() {
        beginTime := time.Now()
        return func() {
            runTime := (float64)(time.Since(beginTime) / time.Millisecond)
            if runTime > 50 {
                fmt.Printf("msg:%s,runTime:%.2f", msg, runTime)
            }
        }
    }
    
    

    之后在我们想观察的函数头加入

    func main() {
        defer traceRunTime("这是一个慢运行函数")() //注意这里还有对括号
        time.Sleep(100 * time.Millisecond)
    }
    

    运行效果

    msg:这是一个慢运行函数,runTime:100.00
    

    相关文章

      网友评论

        本文标题:如何优雅地打印函数的运行时长

        本文链接:https://www.haomeiwen.com/subject/rgxgqktx.html