说起JVM调优,如果有经验的朋友应该都会知道通常的做法就是基于性能测试的结果结合调整JVM启动参数来使应用在充分利用计算机资源的基础上最大限度的提高性能指标。经过调优后应用不会出现由于OOM或者栈溢出而出现应用异常甚至是导致应用服务死机。应该说能做到这些应该差不多可以高枕无忧了。然而直到有一天出现一个诡异的现象使我坐立不安,原因是应用服务看起有内存溢出的趋势,然后应用确一直没有出现任何异常都是正常提供服务。搞得我好像在悬崖边上走的那种感觉。直到后来搞懂一切后才豁然开朗。下面为大家复盘一下这个内存问题。内容有点长,但建议大家看完,保证会让大家对于JVM的垃圾回收有前所未有的认识。