请问一个内存回收有关问题
请教一个内存回收问题 public static void test(){{byte[] b new byte[6*1024*1024]}System.gc()System
请教一个内存回收问题
public static void test(){
{
byte[] b =new byte[6*1024*1024];
}
System.gc();
System.out.println("first explict gc over");
}
这段代码的GC过程如下:
[GC 271K->151K(5056K),0.0015089 secs]
[Full GC 151K->151K(5056K),0.0115487 secs]
[Full GC 7375k->(12284k),0.0097229 secs]
first explict gc over
哪位朋友能够看懂这段代码GC过程,还望不吝赐教,万分感激。
[解决办法]1. -XX的都是JVM参数, 我在eclipse里面运行直接填在jvm args那个框里面就行了, 命令行运行的话,直接加在java 后面就行了,比如 java -jar xxx.jar -XX:+PrintGC -XX:+PrintGCDetails
2. 7496k是新生代回收前使用了多少空间,480k是回收后使用了多少空间,(38912K)是当前可用的总空间。
3. 里面都是垃圾回收使用的时间。看real就行了,这次垃圾回收用了0.01秒
[解决办法]不用关心这问题吧,如果效率影响不大,没用的自动就会回收,如果你特考虑效率可以自己选用回收器,主页上就有16%项目有用到,初学者还是先大体,后细节