`

使用IBM heapAnalyzer分析内存泄露的原因(转载)

    博客分类:
  • java
阅读更多

大家在开发J2EE应用时可能经常碰到OOM的问题。出现这种问题的原因就是内存消耗殆尽,创建新的对象时没有可分配的内存了。为了找到真正导致OOM的原因,这里将使用IBM heapAnalyzer工具进行定位。

 

首先要知道,IBM heapAnalyzer是通过分析OOM后的Java heap dump文件的,通过对dump文件的分析找到内存可能泄露的点。了解这个之后,我们首先需要生成dump文件,这里我可以编写一个小程序,如:

public class Test {
 /**
  * @param args
  */
 public static void main(String[] args) {
  List<String> list = new ArrayList<String>();
  //10M的PermSize在integer范围内足够产生OOM了
  int i = 0;
  while (true) {
   list.add(new String("test"));  }
 }

}


运行该程序时设置JVM的堆内存的极限值为10M(-Xmx10m),并加上-XX:+HeapDumpOnOutOfMemoryError,此参数是帮助生成dump文件,程序启动后直到抛出OOM异常。异常抛出后,在程序的classpath下会生成以一个以.hprof结尾的文件,如:java_pid4504.hprof,这就是我们需要的dump文件。

分享到:
评论

相关推荐

    ibm HeapAnalyzer JVM内存分析工具 ha457.jar下载

    IBM HeapAnalyzer是一款强大的Java虚拟机(JVM)内存分析工具,专为诊断和解决Java应用程序的内存泄漏问题而设计。这个工具能够帮助开发者深入理解Java应用程序的内存使用情况,从而优化性能并防止由于内存泄漏导致...

    内存泄露分析工具(IBM HeapAnalyzer 和 Pattern Modeling and Analysis )

    IBM HeapAnalyzer是一款强大的内存分析工具,主要用于分析Java应用的堆内存。当应用程序出现内存泄漏时,HeapAnalyzer可以帮助开发者定位导致内存泄漏的对象和它们的引用路径。通过分析heapdump文件(通常由JVM生成...

    ibm HeapAnalyzer java内存分析工具 ha457.jar

    IBM HeapAnalyzer是一款强大的Java内存分析工具,主要用于诊断和解决Java应用程序中的内存泄漏问题。这款工具通过对Java堆内存的深入分析,帮助开发者定位那些占用过多内存的对象,从而优化应用性能。在Java开发过程...

    IBM HeapAnalyzer 最新版本 java内存分析工具

    IBM HeapAnalyzer 最新版本 java内存分析工具,性能调优,内存泄露排除比不可少的工具

    使用IBM性能分析工具HeapAnalyzer解决生产环境中的性能问题

    使用 IBM 性能分析工具 HeapAnalyzer 解决生产环境中的性能问题 性能分析是企业级应用系统软件不可或缺的一部分,对于业务操作的响应时间和并发数的要求非常高。只有经过不断的调整优化,才能达到资源的最大利用率...

    ibm的heap analyzer.zip

    IBM Heap Analyzer是一款强大的内存分析工具,主要用于Java应用程序的性能优化,特别是针对IBM J9 JVM的内存管理和垃圾收集进行深入分析。这款工具可以帮助开发者诊断和解决内存泄漏、过度对象分配以及垃圾收集效率...

    IBM HeapAnalyzer分析工具

    IBM HeapAnalyzer分析工具,版本比较稳定。

    IBM HeapAnalyzer.docx

    通过使用 IBM HeapAnalyzer,开发者可以快速地分析 Java 堆转储,检测可能的 Java 堆泄漏,并找到泄漏嫌疑人的位置。 IBM HeapAnalyzer 提供了多种功能,包括: * 查看内存溢出的占比和大小 * 明确显示代码内存...

    ibm-java-堆内存分析工具-heapanalyzer

    IBM Java堆内存分析工具——HeapAnalyzer,是一款专为IBM J9 VM设计的强大内存分析工具,它可以帮助开发者深入理解Java应用程序的内存使用情况,检测并解决内存泄漏问题,从而提升应用性能。本文将详细介绍Heap...

    IBM Heap analyzer

    IBM开发的强大的内存dump分析工具,,IBM heapAnalyzer是通过分析OOM后的Java heap dump文件的,通过对dump文件的分析找到内存可能泄露的点

    基于HeapAnalyzer456.jar 分析java内存溢出

    HeapAnalyzer456.jar 是一个专门用于分析Java内存溢出的专业工具,它可以帮助开发者深入理解内存的分配、使用和泄漏状况。本篇文章将详细介绍如何使用HeapAnalyzer456.jar来分析Java内存溢出问题。 首先,我们需要...

    IBM的HeapAnalyzer

    IBM的HeapAnalyzer是一款强大的内存分析工具,主要用于诊断Java应用程序中的内存泄漏问题。它能帮助开发者深入理解Java虚拟机(JVM)的堆内存状态,通过分析heap dump文件,找出那些占用内存过大的对象,以及这些...

    java 内存溢出分析工具 HeapAnalyzer

    - 理解Java内存模型(堆、栈、方法区等)对使用内存分析工具至关重要。 总之,HeapAnalyzer是Java开发者处理内存溢出问题的强大助手。通过熟练掌握其使用,我们可以有效地定位并解决内存问题,提升应用的稳定性和...

    IBM HeapAnalyzer

    - **分析内存问题**:IBM HeapAnalyzer会展示内存概述、类统计、对象生存周期、内存泄漏嫌疑对象等视图。你可以通过这些视图找出占用内存最大的类,观察对象的生命周期,寻找可能的内存泄漏源。 3. **常见分析方法...

    IBM HeapAnalyzer 内存分析工具 2014最新版 ha456.jar

    IBM出的一款内存分析工具,可以用来分析websphere生成的内存转储phd格式文件 使用方法: java -jar -Xmx3000m ha456.jar heapdump.20141113.171336.1693.0009.phd 一般这种文件都很大,最好使用64位系统,不然会跑不...

    IBM® HeapAnalyzer

    IBM® HeapAnalyzer是一款由IBM公司开发的专业内存分析工具,它主要针对Java应用程序,用于诊断和解决内存泄露问题。HeapAnalyzer通过深入分析Java堆内存的使用情况,帮助开发者找到那些占用内存过大的对象,从而...

    IBM内存分析工具(java)

    IBM内存分析工具(IBM Memory Analyzer,简称MAT)是一款强大的、免费的诊断工具,适用于所有Java虚拟机(JVM)。它能够提供详细的内存分配和引用路径信息,帮助开发者深入理解内存消耗情况,找出可能导致内存问题...

    IBM heapdump分析工具

    - **IBM Memory Analyzer (MAT)**: 这是IBM提供的专业heapdump分析工具,能够帮助开发者识别内存泄漏,计算对象引用链,提供内存占用报告等。 - **JConsole**: 虽然不是IBM官方工具,但也是Java标准监控工具之一,...

Global site tag (gtag.js) - Google Analytics