最近在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()+"]");
}
}
请问此种说法是否正确。
请问大家一个问题:
如果:
在程序开始时的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()+"]");
}
}
请问此种说法是否正确。
一般增长到4/500M,WEBSPHERE啊什么的就CORE DOWN了。
1、程序运行时分配的内存不够,可能会出现
2、就是内存泄漏
我建议你调整一下websphere中java使用的内存,看看是否会有dump文件,然后再去查程序的问题。