内存泄露分析工具Memory_Analyzer_Tool(MAT)介绍.docxVIP

  • 8
  • 0
  • 约2.41千字
  • 约 6页
  • 2016-08-05 发布于重庆
  • 举报

内存泄露分析工具Memory_Analyzer_Tool(MAT)介绍.docx

内存泄露分析工具Memory_Analyzer_Tool(MAT)介绍

内存泄露分析工具Memory Analyzer tool(MAT)介绍Java如何管理内存Java的内存管理就是对象的分配 和释放问题。在Java中,程序员需要通过关键字new为每个对象申请内存空间 (基本类型除外),所有的对象都在堆 (Heap)中分配空间。另外,对象的释放是由GC决定和执行的。在Java中,内存的分配是由程序完成的,而内存的释放是有GC完成的,这种收支两条线 的方法确实简化了程序员的工作。但同时,它也加重了JVM的工作。这也是Java程序运行速度较慢的原因之一。因为,GC为了能够正确释放对象,GC必须 监控每一个对象的运行状态,包括对象的申请、引用、被引用、赋值等,GC都需要进行监控。监视对象状态是为了更加准确地、及时地释放对象,而释放对象的根本原则就是该对象不再被引用。为了更好理解GC的工作原理,我们可以将对象考虑为有向图的顶点,将引用关系考虑为图的有向边,有向边从引用者指向 被引对象。另外,每个线程对象可以作为一个图的起始顶点,例如大多程序从main进程开始执行,那么该图就是以main进程顶点开始的一棵根树。在这个有 向图中,根顶点可达的对象都是有效对象,GC将不回收这些对象。如果某个对象 (连通子图)与这个根顶点不可达(注意,该图为有向图),那么我们认为这个(这些)对象不再被引用,可以被GC回收。以下,我们举一个例子说明内存管理。对于程序的每一个时刻,我们

文档评论(0)

1亿VIP精品文档

相关文档