最近在websphere的工作目录下出现java dump文件。查资料后判断可能是应用程序出现了内存泄漏。
请问大家一个问题:
如果:
在程序开始时的freememory=程序结束时的freememory,那么该程序就没有发生内存泄漏。反之则该程序发生了内存泄漏。
如下:
import java.util.*;
import java.io.*;public class TestGc{ public static void main(String[] args)throws Exception{
System.out.println("free memory["+Runtime.getRuntime().freeMemory()+"]");
System.out.println("max memory["+Runtime.getRuntime().maxMemory()+"]");
System.out.println("total memory["+Runtime.getRuntime().totalMemory()+"]");

Vector vct = new Vector();
System.gc();
Thread.currentThread().sleep(1000);
System.out.println("free memory["+Runtime.getRuntime().freeMemory()+"]");
System.out.println("max memory["+Runtime.getRuntime().maxMemory()+"]");
System.out.println("total memory["+Runtime.getRuntime().totalMemory()+"]");
}
}
请问此种说法是否正确。

解决方案 »

  1.   

    只要内存持续增长,就是内存泄露的表现。
    一般增长到4/500M,WEBSPHERE啊什么的就CORE DOWN了。
      

  2.   

    java dump文件是java把内存中的内容dump到磁盘中,发生这种事情的原因有两个:
    1、程序运行时分配的内存不够,可能会出现
    2、就是内存泄漏
    我建议你调整一下websphere中java使用的内存,看看是否会有dump文件,然后再去查程序的问题。