疑难杂症类别是总结了笔者这么多年来开发的经验总结
2006年开发公司里的一个产品时,发现了一个很难解决的问题:
问题现象:Tomcat跑一天Perm Space 报outofMemory的错误,后来就调整JVM的PermSize,调大后,一天稍长时间又出现这个错误,有点晕了。
环境:JDK1.5,Tomcat5,Hibernate+Spring
问题解决:想了半天,原来Hibernate 采用CGLib实现了lasy load的功能,其间要生成新的class,这些class,如果GC不回收,Perm Space当然迟早会溢出。后来一查果然是这个问题CGLib有个bug,每次lasy-load都会生成新的class,后来更新了一个新的包,问题解决。