登录
首页 >  Golang >  Go问答

如何找出执行路径中的time.Sleep()?

来源:stackoverflow

时间:2024-04-15 16:09:35 356浏览 收藏

哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《如何找出执行路径中的time.Sleep()?》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!

问题内容

尝试找出执行路径中的 time.sleep() 调用。

为了简化问题,请考虑下面的代码。

func BenchmarkSleep(b *testing.B) {
    for i:=0; i < b.N; i++ {
        time.Sleep(time.Millisecond * 10)
    }
}

我尝试分析(cpu、块、互斥)代码,并期望在分析中看到 time.sleep 示例。

我该怎么办。


解决方案


你尝试过吗:

go 测试-trace trace.out

后跟:

go工具跟踪trace.out

...在浏览器中查看它?

然后您可以从跟踪中生成类似 pprof 的配置文件:

go工具跟踪-pprof=TYPE trace.out > TYPE.pprof

支持的配置文件类型有:

  • net:网络阻止配置文件
  • sync:同步阻塞配置文件
  • 系统调用:系统调用阻止配置文件
  • sched:调度程序延迟配置文件

也可以查看:

go工具pprof TYPE.pprof

更一般地说...

跟踪包:https://golang.org/pkg/runtime/trace/

可配合trace工具使用:https://golang.org/cmd/trace/

获取诊断信息并可视化分析数据:https://golang.org/doc/diagnostics.html

到这里,我们也就讲完了《如何找出执行路径中的time.Sleep()?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>