通过Runtime获取当前JVM使用的Heap大小计算机二级考试
文章作者 100test 发表时间 2009:05:24 03:32:21
来源 100Test.Com百考试题网
2009年下半年全国计算机等级考试时间是2009年9月19日至23日。更多优质资料尽在百考试题论坛 百考试题在线题库
一提起如何解决内存溢出问题,动辄使用复杂的监控软件,比如Jprofile等,其实我们可以通过Runtime来获得当前Heap大小,使用Heap大小。测试如下:
1. 设置JVM属性: -Xms64m -Xmx256m 最小64M 最大使用256M.
2. 运行如下代码:
public static void main(String [] args) throws Exception {
int mb = 1024*1024.
//Getting the runtime reference from system
Runtime runtime = Runtime.getRuntime().
System.out.println("##### Heap utilization statistics [MB] #####").
// use memory
List testList = new ArrayList().
for(int i =0. i<.5000.i ){
Thread.sleep(1000).
for(int i1 =0. i1<.5000. i1 ){
testList.add(new String[1000]).
}
System.out.println("Used Memory:"
(runtime.totalMemory() - runtime.freeMemory()) / mb "M").
}
System.out.println("Free Memory:" runtime.freeMemory() / mb "M").
System.out.println("Total Memory:" runtime.totalMemory() / mb "M").
System.out.println("Max Memory:" runtime.maxMemory() / mb "M").
}
}
运行结果如下:
##### Heap utilization statistics [MB] #####
Used Memory:19M
Used Memory:38M
Used Memory:57M
Used Memory:77M
Used Memory:96M
Used Memory:115M
Used Memory:134M
Used Memory:154M
Used Memory:173M
Used Memory:192M
Used Memory:211M
Used Memory:230M
Used Memory:249M
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at prepare.NewClass.main(NewClass.java:32)
Java Result: 1
成功生成(总时间:15 秒)
总结:runtime.totalMemory() 获取Heap大小,runtime.freeMemory() 剩余Heap大小。
特别推荐:
2009年9月全国计算机等级考试时间及科目预告