您的位置:首页 > 其它

一些周期性GC的理由为何

2015-10-25 19:16 211 查看
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 。Oracle/Sun JDK 6的实现中。依赖System.gc()保证DirectByteMemory的清理。假设使用-XX:+DisableExplicitGC,清理工作可能无法及时生产完成OOM.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: