springmvc 堆内存持续性增大调节

 我编写某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监测堆内存,如下图

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

猜你喜欢

转载自blog.csdn.net/qq_20948277/article/details/79158602