问题标签 [gperftools]

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 回答
793 浏览

c++ - 使用 gperftools 的堆分析器来分析 libc malloc

我正在尝试分析应用程序以使用不同的分配策略比较其性能。

使用 tcmalloc 时我可以毫无问题地对其进行分析,但是如何使用 libc 的分配函数对其进行分析?实际上,启用 gperftool 的堆分析器需要使用-ltcmalloc标志¹,但这会导致 tcmalloc 被用作分配策略。

0 投票
1 回答
154 浏览

java - 设置 HEAPROFILE 后,jetty 立即退出

我想分析码头的堆外内存使用情况。
所以我使用 gperftools 并将 env 添加到 jetty.sh:

它工作正常

但是当我注释掉HEAPPROFILE并尝试时service jetty restart(start)
登录后

它退出了。
检查错误日志,我发现这是一个“libunwind”错误。

(完整内容:https ://drive.google.com/open?id=1JB3R27Udpdid3FMgnoWQPr516gZsSfc3 )

离我的范围太远了。
我使用gperftools-2.7with libunwind-1.2.1(在我使用libunwind-0.99-BETA相同的结果之前)。
可能很难解决。环境因素太多。

0 投票
1 回答
66 浏览

c++ - 过滤堆跟踪数据的大小

我为我的应用程序录制了一个带有 heaptrack 的 *.gz 文件。我想用它来找出使用小分配浪费了多少内存。

现在我的问题是:是否可以过滤由 heaptrack 创建的 gz 或数据文件,以便只保留具有特定最大大小的分配?

问候

0 投票
1 回答
511 浏览

windows - TCMALLOC 内存泄漏

在 Windows 上,当我tcmalloc使用我的代码进行静态绑定时,我看到内存持续增长,但如果我不使用tcmalloc.

Linux 中不存在此问题。

我已经尝试过标志下面的标志:

当我使用这些变量时,我可以看到内存增长速度很慢,但是在多天的时间里,内存仍在不断增长。

我需要停止记忆增长。

0 投票
0 回答
142 浏览

c++ - 在 Jetson TX2 上分析问题 C++。不显示函数名称

我在 Jetson TX2 上分析我的 C++ 代码时遇到问题。分析本身可以工作,但我没有得到函数名称,而是说有一部分是未知的。我用 go 安装了 pprof,它可以在我的 Raspberry Pi 上运行,我猜 id 做了正确的步骤。例如我的 Jetson 和我的 Pi 之间的区别:

我在 Jetson 上得到的结果是:

在 Pi 上,我得到:

如您所见,分析我使用的 OpenCV 函数工作正常,但我自己的代码称为未知。

我在编译时启用了 -g 标志。我使用以下行来分析我的代码(makefile)

...当我使用 google-pprof 而不是 pprof 时,我没有得到未知的但只有地址(如 0x0000007f7a090498)。我试图解决错误但没有成功。我尝试了很多,猜想这是将地址耦合到函数名的问题。当我尝试 addr2line 时,我得到:

我希望有一个人可以帮助我。

0 投票
0 回答
428 浏览

cross-compiling - 如何指定主机参数以在 Bazel 中配置脚本?

我正在尝试使用https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux上的 Linaro 工具链在 lubuntu 16.04 LTS 上为 aarch64 变体交叉编译特使(使用 Bazel)-gnu/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz

我已经为 bazel 编写了一个自定义工具链,但 gperftools 无法构建并出现以下错误:

在我看来,主机系统类型应该是 aarch64。

我想知道如何在 bazel 中为编译 gperftools 的配置脚本指定 --host 参数。我的工具链文件也完全有可能是错误的,因为这是我第一次尝试编写一个。

我一直在尝试调整https://docs.bazel.build/versions/master/tutorial/cc-toolchain-config.html#setting-up-the-build-environment上的教程

我的顶级构建包含

我的工具链目录包含一个 BUILD 文件

和一个名为 cc_toolchain_config.bzl 的文件

我一直在使用这个构建命令

0 投票
2 回答
1085 浏览

macos - 使用 gperftools/pprof 时没有函数名

我一直在尝试让 gperftools CPU 分析在我的程序上工作。

我遇到了一个问题,当 pprof 报告时,我的程序中的所有函数名称都是指针地址。烦人的是,我链接的库中的大多数函数名都是可读的,但我的程序文件中没有。下面的例子。

我需要做什么才能让我的函数名称包含在 pprof 输出中?

如果有帮助,这就是达到上述目的的过程对我来说是怎样的。我使用以下选项构建我的程序

我通过运行使用 gprof 启用 CPU 分析

DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib CPUPROFILE=hmiss.prof ./hmiss

然后我跑pprof --text ./hmiss hmiss.prof

从一个类似问题的答案中,我认为可能包括调试符号可能会在其中获得名称,但仅使用 -g 构建我的程序似乎没有帮助。此外,删除 -O2 标志也无济于事。

0 投票
1 回答
497 浏览

qt - __GI___poll 在我的个人资料中是什么意思?

我正在使用 gperftools 来分析我的 C++ 代码,最大的节点是__GI___poll. 它由低级 Qt 和 OpenCL 代码(主要是 Qt)调用,因此从我自己的代码中删除了几个步骤。我的猜测是,这只是一个通用的“等待事件”功能,但我的搜索努力却白费了。

这个函数是什么,我的代码在这里花费了这么多时间,它可以说明什么?

0 投票
0 回答
68 浏览

java - 如何在 Java 应用程序上使用 gperftools?

我从 gperftools 的 wiki 和一些博客中学会了在我的服务器上安装 gperftools。命令如下:


现在我有两个问题: 1.如何确定我已经成功安装了 gperftools?2.如何开始对我的 Java 应用程序进行堆检查?

我尝试了几种方法,但它们似乎都是错误的。谢谢!

0 投票
0 回答
30 浏览

profiling - _Rf_cons 和 _Rf_allocVector3 是什么?

我正在开发一个使用 Rcpp 和 RcppArmadillo 的 R 包,并且我正在尝试分析包中的一个主要功能以改进其运行时。

我正在使用Dirk 推荐的gperftools,具体如本文所述。前两个函数调用(按分析样本的数量)被调用_Rf_cons_Rf_allocVector3

有谁知道这些函数是什么,以及在 Rcpp 代码中可以从哪里调用它们?我无法通过谷歌或在 Rcpp GitHub 存储库中找到对它们的任何引用。

谢谢!