java垃圾回收测试实例

来源:互联网 发布:anaconda2 安装 linux 编辑:程序博客网 时间:2024/05/16 01:02

System.gc()方法

      命令行参数透视垃圾收集器的运行
  使用System.gc()可以不管JVM使用的是哪一种垃圾回收的算法,都可以请求Java的垃圾回收。在命令行中有一个参数-verbosegc可以查看Java使用的堆内存的情况,它的格式如下:
  java -verbosegc classfile
  可以看个例子:
  

[java] view plaincopy
  1. class TestGC  
  2. {  
  3.     public static void main(String[] args)  
  4.     {  
  5.       new TestGC();  
  6.       System.gc();  
  7.       System.runFinalization();  
  8.    }  
  9. }  

      
  在这个例子中,一个新的对象被创建,由于它没有使用,所以该对象迅速地变为不可达,程序编译后,执行命令: java -verbosegc TestGC 后结果为:
  [Full GC 168K->97K(1984K), 0.0253873 secs]
  机器的环境为,Windows 2000 + JDK1.3.1,箭头前后的数据168K和97K分别表示垃圾收集GC前后所有存活对象使用的内存容量,说明有168K-97K=71K的对象容量被回收,括号内的数据1984K为堆内存的总容量,收集所需要的时间是0.0253873秒(这个时间在每次执行的时候会有所不同)。

      需要注意的是,调用System.gc()也仅仅是一个请求(建议)。JVM接受这个消息后,并不是立即做垃圾回收,而只是对几个垃圾回收算法做了加权,使垃圾回收操作容易发生,或提早发生,或回收较多而已。

0 0
原创粉丝点击