Heaptrack

Linux 堆内存分析器
授权协议 未知
开发语言 C/C++ SHELL
所属分类 开发工具、 程序调试工具
软件类型 开源软件
地区 不详
投 递 者 涂溪叠
操作系统 Linux
开源组织
适用人群 未知
 软件概览

Heaptrack 是一个 Linux 的堆内存分析器。跟踪所有的内存分配,并用堆栈痕迹来注释这些事件。然后,专门的分析工具允许你解释堆内存剖面,以:

  • 找到需要优化的热点,以减少应用程序的内存占用率
  • 找到内存泄漏,即分配内存但从未被删除的位置
  • 找到分配热点,即引发大量内存分配调用的代码位置
  • 找到临时分配,即分配后直接被取消分配的位置

Heaptrack 被分成两部分:数据收集器,即 heaptrack 本身,以及称为 heaptrack_gui 的分析器 GUI。下面总结了这两部分的依赖关系,因为它们可以独立构建。你可以在所有主要发行版上找到这些依赖的相应开发包。

在嵌入式设备或旧的 Linux 发行版上,你只需要构建 heaptrack。然后可以在不同的机器上分析数据,这些机器使用更现代的 Linux 发行版,可以访问所需的 GUI 依赖性。

  • 1.git clone https://github.com/KDE/heaptrack.git 2.cd heaptrack # i.e. the source folder 3.mkdir build 4.cd build 5.cmake -DCMAKE_BUILD_TYPE=Release … # 这一步有啥差错看提示信息,这里是需要下载boost依赖和libunwind依赖 6.make

  • GitHub - KDE/heaptrack: A heap memory profiler for Linux

 相关资料
  • 问题内容: 是局部变量,将其存储在堆或堆栈中的何处? 问题答案: 在堆上。每当您用来创建对象时,它都会在堆上分配。

  • 我有一个非常奇怪的问题。我有一个30 GB的堆转储,我想在我的笔记本电脑上分析相同的(它有8 GB的内存)。我试着用MAT和IBM堆分析器这样做,但是根据他们的建议,Xmx大小应该超过转储大小。我也试着用MAT的文件分析堆转储,但是收到内存错误。 关于如何成功分析笔记本电脑上的垃圾,有什么建议吗? 提前谢谢!

  • 我的WebLogic服务器配置了16GB的堆空间,但当大多数用户开始工作时,90%的堆空间在生产使用1小时内就被使用了。我观察到每当这种情况发生时,都有几条线卡住了。 我已经检查了线程转储,没有“等待锁定”对象线程,线程类似于如下所示,线程没有明显的原因被卡住。

  • 我试图了解分配给堆栈和堆的内存量。假设sizeof(char)=1字节,sizeof(void*)=4字节。给定以下代码: 我们被告知分配给堆的内存量是5个字节,我明白这确实是malloc(strlen(str2)=5)中的量。但是,我不明白的是分配给堆栈的内存量是如何达到18个字节的?我想如果他们给我们一个指针大小是4个字节的信息,那么我们有4个字节的指针str1和另外6个字节的数组str2(包

  • 简单的问题是,std::initializer\u list堆是否分配内存?我说的不是它的元素项,而是缓冲区本身来存储元素。

  • 我试图分析我的Java applet的堆转储,它耗尽了堆空间,即使我增加堆大小,如本文所示。applet:Java堆空间 今天上午我做了一些堆转储(是的...它可能做数字转储),我试图用MAT和Visual VM1.3.5来分析它们。运行泄漏测试后,主要的怀疑对象是org.eclipse.jdt.internal.core.javaModelManager和org.eclipse.jst.jee.

  • 我已经用工具从运行了几天的Java应用程序中生成了一个堆转储文件,这将导致一个很大的二进制堆转储文件。 我如何在IntellIJ IDEA中对这个堆转储执行内存分析? 我知道有一些用于Eclipse和Netbeans的工具,但如果可能的话,我更愿意使用IDEA。 分析的基本结果将告诉我每个对象在内存中的实例数(每个类),以便我能够开始调试内存泄漏。

  • /redis/script/redis-sampler.rb 127.0.0.1 6379 0 10000 /redis/script/redis-audit.rb 127.0.0.1 6379 0 10000