如何获取 Go 测试的 CPU/内存分析图作为图像

How to get the CPU/memory profiling graph of Go tests as an image

提问人:Megidd 提问时间:10/30/2023 更新时间:10/30/2023 访问量:51

问:

我正在使用 VS Code 运行 Go 测试以及 CPU/内存分析:

Screenshot

问题

如何将图表下载/保存为图像?

我将结果下载为文件:*.gz

Screenshot: *.gz file

然后我使用这些命令将文件转换为图像。但是我收到错误:*.gz

dot -Tpng -Gdpi=1024 profile.pb.gz > profile.pb.gz.png
Error: profile.pb.gz: syntax error in line 1 near '▼'

也:

dot -Tpng profile.pb.gz  -o profile.pb.gz.png
Error: profile.pb.gz: syntax error in line 1 near '▼'
单元测试 go visual-studio-code profiling graphviz

评论

0赞 Volker 10/30/2023
在飞行中点卡诺特 gunzip 文件,您必须自己完成。
0赞 Megidd 10/30/2023
@Volker 我认为代表 GraphViz,而不是 GZip。我以为这是 GraphViz 特定的文件类型。*.gz
1赞 Volker 10/30/2023
文件告诉你什么?如果你看一下文件,你会看到什么?
0赞 Megidd 10/30/2023
@Volker 好吧,该命令通过以下消息指示它是一个压缩文件:filegzipprofile.pb.gz: gzip compressed data, original size modulo 2^32 3339
3赞 Volker 10/30/2023
我真的不明白你的问题。这是配置文件数据,您可以通过 处理该数据。Running 提到了大约 20 种输出格式,从文本到点/图形可视化、pdf 和 png。就用它,没有必要在这里花哨。go tool pprofgo tool pprof -h

答:

-3赞 Megidd 10/30/2023 #1

这些步骤可能有效,但尚未尝试:

  1. 通过 VS Code UI 下载文件。*.gz
  2. 提取文件并获取文件。*.gz*.pb
  3. 通过以下存储库处理文件:https://github.com/google/pprof*.pb
2赞 Peter 10/30/2023 #2

profile.pb.gz 包含(压缩的)分析数据。它与Graphviz无关。

Go 包括 pprof 工具,用于从各种格式的数据中提取信息,包括 PNG、GIF 或 SVG 编码图像:

$ go tool pprof -png profile.pb.gz > foo.png
$ file foo.png
foo.png: PNG image data, 1164 x 1344, 8-bit/color RGB, non-interlaced

请注意,无需对文件进行压缩。

查看更多选项。go tool pprof -h

评论

0赞 Megidd 10/31/2023
我测试过,你的建议:)
0赞 Megidd 11/1/2023
问题是,为什么 VS Code 不允许我们通过其 UI 将图形导出为图像?在哪里可以申请此功能?哪个 GitHub 存储库?