记解决线上因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 @   东窗凝残月  阅读(750)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示