lqxue

常用链接

统计

book

tools

最新评论

java内存监测

1、关于Runtime的totalMemory和freeMemory的区别
    很简单,totalMemory就是目前jvm中的内存总量,这个值是可以变的,最大等于你设定的jvm可用最大内存总量(eg.-Xmx512M表明你的jvm最大内存量就是512M),最小等于你设定的jvm最小内存总量(-Xms128M)。
    freeMomory就是当前jvm中可以用来分配的内存量。

2、为了检测一个方法到底是多么的耗费内存,我写了个线程来监视它,在方法调用之前启动该线程,调用后停止该线程,线程执行期间会定期的打印出内存情况到控制台。
   
public class MemoryListner implements Runnable {
        
private boolean stop1;

        
public MemoryListner(boolean stop) {
            
this.stop1 = stop;
        }
        
public void run() {
            
while (!stop1) {
                
try {
                    Thread.sleep(
100);
                } 
catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println(Runtime.getRuntime().totalMemory()
+":"+Runtime.getRuntime().freeMemory());
            }
            System.out.println(
"Complete");
        }
       public void stop(){
          this.stop1 = true;
       }

    }


posted on 2007-06-01 08:58 lqx 阅读(398) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: