问题:之前在线上遇到过一个问题,每一小时都会执行fullgc,但是此时的堆内存大小是足够的。
分析:
当前我的tomcat的版本是6.0.35,此时tomcat有这样的配置:
6.0.35的org.apache.catalina.core.JreMemoryLeakPreventionListener的261行有如下代码
if (gcDaemonProtection) {
try {
Class<?> clazz = Class.forName("sun.misc.GC");
Method method = clazz.getDeclaredMethod(
"requestLatency",
new Class[] {long.class});
method.invoke(null, Long.valueOf(3600000));
表明一小时显示的调用