使用Runtime监控内存使用情况

来源:互联网 发布:开源直播系统源码 编辑:程序博客网 时间:2024/05/21 17:05

Runtime类

一、单例类

Runtime.getRuntime();


二、常用方法

addShutdownHook(Thread);removeShutdownHook(Thread);exec(...);availableProcessors();freeMemory();totalMemory(); // Xms ~ XmxmaxMemory(); // Xmxgc();


三、freeMemory、totalMemory和maxMemory的关系

java runtime memory

四、内存使用测试

Runtime rt = Runtime.getRuntime();rt.gc();System.out.println("totalMemory: " + rt.totalMemory());System.out.println("maxMemory: " + rt.maxMemory());List<String> list = new ArrayList<String>(1000000);String str = "";for (int i = 0; i < 10000; ++i) {    str += i % 10;}rt.gc();System.out.println(rt.freeMemory() + "-" + (rt.maxMemory() - rt.totalMemory() + rt.freeMemory()));for (int i = 0; i < 1000000; ++i) {    list.add(new String(str));    if (i % 10000 == 0) {        rt.gc();        System.out.println(rt.freeMemory() + "-" + (rt.maxMemory() - rt.totalMemory() + rt.freeMemory()));    }}
VM arguments: -Xms10m -Xmx20m



一开始freeMemory的大小约为10m,随着可用内存的减少,中间有一次内存的增加,totalMemory最大可达到Xmx的设置值。

0 0
原创粉丝点击