springmvc 堆内存持续性增大调节

  • Post author:
  • Post category:其他


我编写某web项目的时候发现项目运行速度会周期性变慢,然后打开jconsole监控堆内存


发现堆内存走势如上图,正常情况下堆内存走势应该是折线,而该图表示,直到堆内存满了之后,系统执行了full gc 堆内存使用率才下降,即发生了内存泄漏,这个问题令我百思不得其解,然后我利用mat排查原因,发现是框架问题,猜测spring在默认配置下,不会释放对象,但确确实实影响了我并发速度,查阅资料发现在主监听器千增加

IntrospectorCleanupListener

监听器可解决该问题 于是在web.xml中添加

<!-- 防止内存泄露 -->
   <listener>
	<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
  </listener>
  <listener>
    <description>Spring 核心监听器</description>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

然后用jconsole监测堆内存,如下图

发现走势一切正常,问题解决



版权声明:本文为qq_20948277原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。