记解决线上因hibernate导致内存泄漏问题

1、导出堆内存空间

  jmap -dump:format=b,file=export.bin 128530

2、在Eclipse中使用MAT工具查看

3、发现问题:
如上图,发现内容存的都是hql或sql,是org.hibernate.stat.internal.ConcurrentStatisticsImpl这个类下面的queryStatistics 成员变量的table存了大量数据。
后来发现 queryStatistics 这是一个监控性能里的一个内容。
hibernate.generate_statistics 如果开启,,Hibernate将收集有助于性能调节的统计数据。取值 true | false
只要把下面的这个设置为false即可:

  <prop key="hibernate.generate_statistics">false</prop>
posted @ 2019-11-01 10:22  东窗凝残月  阅读(726)  评论(0编辑  收藏  举报