首页 > 代码库 > 一些定时gc的原因

一些定时gc的原因



1.对于tomcat:预防内存泄露监听器 JreMemoryLeakPreventionListener在工作,默认每隔一小时触发一次System.gc

Class clazz = Class.forName("sun.misc.GC");
Method method = clazz.getDeclaredMethod(
                        "requestLatency",
                        new Class[] {long.class});
method.invoke(null, Long.valueOf(3600000)); // 一小时

对于tomcat 7028和6038之后的版本,这个时间被调整为
method.invoke(null, Long.valueOf(Long.MAX_VALUE - 1));

2.无论是tomcat还是jboss,rmi.dgc在工作,jdk6的默认设置是1小时,可以自己修改:


-Dsun.rmi.dgc.client.gcInterval=60000
-Dsun.rmi.dgc.server.gcInterval=60000

 可以看:http://ehcache.org/documentation/operations/garbage-collection
这里不鼓励使用DisableExplicitGC ,会把一些问题隐蔽。
?