分类:
2008-07-30 13:53:46
我们都知道Java程序之所以被广大程序员青睐,很大的一个原因是因为Java有GC(垃圾收集),不用程序员花很大的精力来解决内存释放和泄漏问题。而这些问题总是C/C++程序员需要花很大精力来认真地面对的。
问题总是双面的,GC给我们带来了很大的快乐,释放了程序员很多的精力和时间,但是在某些时候也会给我们带来一些小小的麻烦。Java里的Object并非交给GC去释放就可高枕无忧了,下面从JDK1.4的Demo中Java2D的Memory Monitor说起。
Memory Monitor单独运行,如果存在While复杂循环,GC释放内存有一定的时间,在这个时间中间,内存消耗的很厉害。
Runtime.getRuntime().freeMemory();
Runtime.getRuntime().gc();
由此可以考虑在,程序while等比较好内存的地方采用上述方法,降低内存峰值,提高内存效率。