- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 pprof
还算陌生。我已经开始进行 CPU 分析,并在一段时间后检查了 top25。这就是我得到的:
Showing top 25 nodes out of 174
flat flat% sum% cum cum%
1.01mins 21.92% 21.92% 1.10mins 23.83% time.Time.AppendFormat
0.26mins 5.56% 27.48% 0.26mins 5.56% type..eq.[65]runtime.sigTabT
0.23mins 5.07% 32.55% 0.23mins 5.07% type..hash.[3]runtime.symbol_key
0.15mins 3.14% 35.69% 0.15mins 3.14% type..hash.[9]string
...
我认为这很酷,我只需要摆脱那个时间功能。然后意识到,我什至没有使用 pkg 时的任何东西,所以它必须是第三方库,或者 go 内部函数之一。
所以我使用 -web
标志生成了图表,这样我就可以看到哪个函数调用了它,但它并没有真正直接显示。有什么办法可以追踪它的来源吗?
最佳答案
我一直在使用以下方法来查看所有内容。
go tool pprof -http :9999 -edgefraction 0 -nodefraction 0 -nodecount 100000 cpu.prof
这会给你一个巨大的图表,但很难理解。为了帮助解决此问题,您可以单击 Web View 中的违规节点,然后从左上角的“优化”菜单中选择“焦点”。这提供了该节点及其所有调用者和被调用者的 View 。
查看所有内容所需使用的关键选项是:
--nodecount=<n> Show at most so many nodes [default=80]
--nodefraction=<f> Hide nodes below <f>*total [default=.005]
--edgefraction=<f> Hide edges below <f>*total [default=.001]
您还可以在命令行上使用-focus
来加快大图的渲染速度。
--focus=<regexp> Focus on nodes matching <regexp>
关于Golang pprof 完整调用图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49771048/
我一直在阅读这里的概要分析,它是使用 net_http_pprof 解释的在这里 runtime_pprof .那么,这两者之间有什么区别,应该更喜欢哪一个。并且请不要粘贴给定链接中的概述定义 最佳答
我试图弄清楚 pprof 如何计算我的 Go 应用程序输出中每个节点的 %cum。我附上了我的 pprof png 输出的一部分以强调我试图找出的问题 pprof png output在这部分 ppr
如何使用 pprof 来定位现网 Golang 问题,已经是一名 Gopher 所需要掌握的必备技能了。我们在实际工作中也经常使用它来定位现网问题。网上有很多文章来描述 pprof 的使用,但是实际的
我对 pprof 还算陌生。我已经开始进行 CPU 分析,并在一段时间后检查了 top25。这就是我得到的: Showing top 25 nodes out of 174 flat f
我的应用程序在 CentOS 上运行,当我运行 curl localhost:port/debug/pprof/profile > some.pprof,并运行 go tool pprof some.
我正在尝试让 pprof 使用 Golang。 --text 似乎可以正常工作,但大多数其他选项都不起作用。 以 pdf 为例: root@ubuntu:/home/user/IdeaProjects
我有一个 go 二进制文件,它使用 cobra 作为子命令。每个子命令都有它自己的标志。我希望能够为具有一组特定参数的命令创建 CPU 配置文件,例如: myBinary dryRun -c conf
在检查 pprof 的输出时,我可以看到 goroutine 的堆栈跟踪。但是我想知道是谁开始(产生?)这个 goroutine,这可能吗? 最佳答案 如果您查看端点 /debug/pprof/gor
遵循本指南 http://golang.org/pkg/net/http/pprof/ ,我正在尝试查看堆报告。当我导航到适当的 url 时,将显示以下内容: 我尝试使用 ActivePerl、Str
当我使用 Linux 的 time 实用程序测量我的 Go 程序的运行时间时,我得到以下输出: real 1m9.177s user 7m1.788s sys 0m39.016s
我正在尝试找到一种方法来存储来自 pprof 的堆数据,以便我可以共享它、稍后查看它、附加到问题等等。到目前为止,我的尝试没有奏效。 如果我跑 go tool pprof http://my-serv
当我使用 pprof 分析堆时,我得到以下信息: 但是,我不清楚如何解释该可视化。特别是: “箭头旁边的内存表示 _____,盒子内部的内存表示 ______。所以当一个盒子有多个箭头时,它表示 __
我正在尝试分析一个用 go 编写的应用程序,它显然使用了大约 256 个虚拟内存(使用 ps aux 检查)。我正在尝试使用 pprof打包并查看哪些函数分配/消耗了大部分内存,但结果对我来说毫无意义
如何获得命中数: (pprof) top Total: 2525 samples 298 11.8% 11.8% 345 13.7% runtime.mapaccess1_f
我想profile我的由 go test -c 生成的基准测试,但是 go tool pprof 需要一个 profile 文件,通常在主要功能如 this : func main() { f
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 1年前关闭。 Imp
我对 pprof 有点陌生工具,我想知道在生产中继续运行它是否可以。从我看过的文章来看,它似乎还可以且标准,但是我很困惑这不会影响性能,因为它进行了采样 N每秒一次,为什么这不会导致性能下降。 最佳答
这个问题在这里已经有了答案: golang tool pprof not working properly - same broken output regardless of profiling
我正在尝试分析我编写的 Web 服务器,但我的 pprof 不包含有关处理程序函数的任何数据。 我正在使用 httprouter package由 julienschmidt 编写,并想简单地对我的一
我一直在尝试使用 pprof 分析我的 go 应用程序 (evm-specification-miner),但输出并不是很有用: (pprof) top5 108.59mins of 109.29mi
我是一名优秀的程序员,十分优秀!