摘要:jvm参数设置:1. -Xloggc:gc.log -XX:+PrintGCTimeStamps -XX:-PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+PrintHeapAtGC2. -agentlib:hprof(按Ctrl+C生成 java.hprof...
阅读全文
随笔分类 - Java memory analyze
摘要:jvm参数设置:1. -Xloggc:gc.log -XX:+PrintGCTimeStamps -XX:-PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+PrintHeapAtGC2. -agentlib:hprof(按Ctrl+C生成 java.hprof...
阅读全文
摘要:一、Thread Dump介绍1.1什么是Thread Dump?Thread Dump是非常有用的诊断Java应用问题的工具。每一个Java虚拟机都有及时生成所有线程在某一点状态的thread-dump的能力,虽然各个 Java虚拟机打印的thread dump略有不同,但是大多都提供了当前活动线...
阅读全文
摘要:perm gen我们在上2篇文章中知道,perm gen是个异类,里面存储了类和方法数据(与class loader有关)以及interned strings(字符串驻留)。在heap dump中没有包含太多的perm gen信息。那么我们就用这些少量的信息来解决问题吧。看下面的代码,利用inter...
阅读全文
摘要:在本文中,将介绍MAT如何根据heapdump分析泄漏根源。由于测试范例可能过于简单,很容易找出问题,但我期待借此举一反三。一开始不得不说说ClassLoader,本质上,它的工作就是把磁盘上的类文件读入内存,然后调用java.lang.ClassLoader.defineClass方法告诉系统把内...
阅读全文
摘要:前言在平时工作过程中,有时会遇到OutOfMemoryError,我们知道遇到Error一般表明程序存在着严重问题,可能是灾难性的。所以找出是什么原因造成OutOfMemoryError非常重要。现在向大家引荐Eclipse Memory Analyzer tool(MAT),来化解我们遇到的难题。...
阅读全文
摘要:一、安装JProfiler 从http://www.ej-technologies.com/下载5.1.2并申请试用序列号二、主要功能简介1.内存剖析 Memory profilerJProfiler 的内存视图部分可以提供动态的内存使用状况更新视图和显示关于内存分配状况信息的视图。所有的视图都有几...
阅读全文
摘要:要点内存泄露是指程序中间动态分配了内存,但在程序结束时没有释放这部分内存,从而造成那部分内存不可用的情况,重启计算机可以解决,但也有可能再次发生内存泄露,内存泄露和硬件没有关系,它是由软件设计缺陷引起的。内存泄漏可以分为4类:1)常发性内存泄漏。发生内存泄漏的代码会被多次执行到,每次被执行的时候都会...
阅读全文
摘要:概述对于大型 JAVA 应用程序来说,再精细的测试也难以堵住所有的漏洞,即便我们在测试阶段进行了大量卓有成效的工作,很多问题还是会在生产环境下暴露出来,并且很难在测试环境中进行重现。JVM 能够记录下问题发生时系统的部分运行状态,并将其存储在堆转储 (Heap Dump) 文件中,从而为我们分析和诊...
阅读全文
|