记解决线上因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>