为了账号安全,请及时绑定邮箱和手机立即绑定

如何查看由“runtime/trace”生成的跟踪的详细信息?

如何查看由“runtime/trace”生成的跟踪的详细信息?

Go
偶然的你 2021-11-22 10:42:17
考虑下面的程序,它简单地启动几个 goroutine,然后等待它们完成并通过通道发出信号表示它们已完成。package mainimport (    "os"    "runtime/trace"    "time")func doWork(c chan int) {    startTime := time.Now()    i := 0    for curTime := startTime; curTime.Sub(startTime) < 2; curTime = time.Now() {        i++    }    c <- i}func main() {    numGoRoutine := 10    traceOutFile, _ := os.OpenFile("/tmp/Trace.out", os.O_WRONLY|os.O_CREATE, os.ModeExclusive|os.ModePerm)    trace.Start(traceOutFile)    // Start goroutines    termChannel := make(chan int)    for i := 0; i < numGoRoutine; i++ {        go doWork(termChannel)    }    // Wait for completion    for i := 0; i < numGoRoutine; i++ {        <-termChannel    }    trace.Stop()}当这个程序终止时,输出是一个名为/tmp/Trace.out. 接下来,我尝试使用跟踪工具查看跟踪,如下所示。go tool trace -http=localhost:8080  ./Main /tmp/Trace.out这会产生一个带有链接的页面View Trace(连同一个只提供聚合数据的其他链接的视图),但点击该链接会导致一个空白页面。当我查看该页面的源代码时,我看到了以下源代码,这似乎暗示着 JSON 是预期的,而不是二进制的。<html>    <head>        <link href="/trace_viewer_html" rel="import">        <script>            document.addEventListener("DOMContentLoaded", function(event) {                var viewer = new tr.TraceViewer('/jsontrace');                document.body.appendChild(viewer);            });        </script>    </head>    <body>    </body></html>如何使用 Go 工具查看逐事件跟踪?
查看完整描述

2 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

我可以确认@widsvc 的评论:您可能使用的是不兼容的浏览器,例如 Firefox。

它在 Chrome 中按预期工作。

在引擎盖下看,您可以在 Firefox 的控制台中看到此错误:

ReferenceError: tr 未定义 trace:7:9

快速搜索后,它似乎使用嵌入在 Chrome 中的跟踪查看器:https : //www.chromium.org/developers/how-tos/trace-event-profiling-tool

我尝试trace2htmlhttp://localhost:8080/jsontrace的内容上使用他们的独立工具,但输出仍然给我错误的 Firefox(第一个“document.registerElement 不是一个函数”,在修复之后其他人保留未来


查看完整回答
反对 回复 2021-11-22
?
侃侃无极

TA贡献2051条经验 获得超10个赞

万一有人发现自己处于我的状态,事实证明,Chrome 49 中的跟踪查看器也已损坏。

它已在最近的 CL 中得到修复:https : //go-review.googlesource.com/#/c/22013/


查看完整回答
反对 回复 2021-11-22
  • 2 回答
  • 0 关注
  • 176 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信