问题标签 [pprof]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2411 浏览

profiling - 带有堆分析的 google-perftools/pprof 格式

google-perftools 包中有一个 pprof 实用程序。将配置文件从 google-perftools cpuprofiler 和 heapprofiler 转换为漂亮图像的实用工具:如https://github.com/gperftools/gperftools/tree/master/doc/pprof-test-big.gifhttps://github .com/gperftools/gperftools/tree/master/doc/heap-example1.png

pprof 输入文件的格式在此处针对 cpu 配置文件进行了描述:https ://github.com/gperftools/gperftools/tree/master/doc/cpuprofile-fileformat.html

但是heap profilesvn中没有描述输入文件的格式。

什么是“堆分析”格式以及如何从我的代码生成这样的文件?我已经可以生成 cpuprofiler 格式,所以我感兴趣的是两种格式之间的区别。

0 投票
2 回答
19195 浏览

go - 如何在 Go 程序中使用 pprof

如何在 Go 程序中使用 pprof?

有一个名为net/http/pprof的 Go 包,但我不能使用它。

该文件说go tool pprof http://localhost:6060/debug/pprof/heap,这是行不通的。

而且,下面的_是什么意思?

import _ "net/http/pprof"

0 投票
0 回答
895 浏览

profiling - 合并几个 google-pprof 文件(pproc CPU profiler)

我想使用 google-perftools(gperftools 的 libprofiler.so)中的 CPU Profiler,如下所述:http: //gperftools.googlecode.com/svn/trunk/doc/cpuprofile.html

在我的设置中,我想运行程序进行多次分析(最多 1500 次;每次运行都不同),然后将所有运行(或运行的某些子集)的 pprof 输出合并到单个 pprof 文件中。

我怎样才能做到这一点?

PS:我的程序几乎不使用共享库,因此只会分析单个二进制(elf)文件。

PPS:感谢 Chris,pprof 可以使用多个配置文件:

0 投票
1 回答
3132 浏览

go - 为什么 golang 堆配置文件中的“总 MB”小于顶部的“RES”?

我有一个用 go 编写的服务,它在运行时需要 6-7G 内存(顶部是 RES)。所以我使用 pprof 工具试图找出问题所在。

但是结果中只有大约 1-2G 内存(pdf 中的“总 MB”)。剩下的在哪里?

我已经尝试使用 GOGC=off 来分析我的服务,结果“总 MB”与顶部的“RES”完全相同。似乎内存已被 GC,但尚未返回内核将不会被分析。

任何的想法?

PS,我在 1.0.3 和 1.1rc3 都测试过。

0 投票
1 回答
1085 浏览

go - golang 内存爆炸:newdefer

我有一个程序在 udp 上侦听日志流量,尝试解析它,然后将其插入 Redis。在一定的流量水平下,内存似乎“爆炸”(从几百兆字节迅速增加到千兆字节。

发生这种情况后不久,我抓取了一个堆配置文件,它返回以下内容:

当程序“健康”时,配置文件看起来更像:

我的代码中唯一的延迟是围绕解析函数(因为它经常会失败):

有没有人看到任何明显的我做错了可能导致记忆突然膨胀的事情?或者也许提供一些方向来固定它?

编辑(有关 logrow.Record 频道的更多代码):

0 投票
2 回答
8711 浏览

memory-leaks - Go(lang):如何使用 PPROF 堆配置文件来查找内存泄漏?

我正在尝试使用 pprof 来验证内存泄漏。

任何人都可以解释如何阅读您在以下位置找到的堆配置文件: http://localhost:6060/debug/pprof/heap?debug=1

此外,web在启动后键入命令go tool pprof http://localhost:6060/debug/pprof/heap会产生一个空的 .svg 文件是否正常?

非常感谢

0 投票
2 回答
2008 浏览

go - go pprof 看不到所有方法

我正在使用 go pprof 来分析我的应用程序,我遵循了下一个教程 - http://saml.rilspace.org/profiling-and-creating-call-graphs-for-go-programs-with-go-tool-pprof

我分析的“--text”结果是-

总计:48 个样本 48 100.0% 100.0% 48 100.0% runtime.mach_semaphore_wait 0 0.0% 100.0% 48 100.0% 系统

我应该怎么做才能获得应用程序的完整分析结果?(一般我的应用程序与 go-imap 和 json 一起使用)

0 投票
1 回答
1990 浏览

go - Is it possible to increase the sample rate when profiling go programs?

I have a small program in go that executes most of its code in parallel using go routines. I start CPU profiling as described in the blog on profiling go programs, but when I look at the data I see only 3-5 samples (the actual runtime of the program is several seconds). Is there way to increase the sample rate? Tried googling but couldn't find a thing...

0 投票
0 回答
891 浏览

google-perftools - 如何在 google-perftools 堆分析器的堆栈跟踪中显示符号

我们在 TDD 环境中使用 google-perftools 堆分析器。最后我们得到堆转储,我们可以使用 pprof 来查看热点。它显示了符号,但几乎没有提供有关如何在堆栈中到达泄漏的信息。事实上,我可以看到输出中没有任何组织。

最大泄漏的堆栈跟踪在运行时显示,但不显示任何符号。我们正确设置了 PPROF_PATH 环境变量,但它没有任何效果。我们如何启用它?

0 投票
1 回答
4485 浏览

go - golang - net/http/pprof 不起作用

我有客户 http 服务:

它不起作用:

返回错误:

谢谢。

编辑:我认为问题是我重写了默认的 http 服务器,net/http/pprof 包注入 http 处理程序:

处理程序在我的代码中不起作用。