gpt4 book ai didi

java - Profiler 下的 Hibernate 性能和内存泄漏问题

转载 作者:行者123 更新时间:2023-12-04 06:28:03 26 4
gpt4 key购买 nike

我已经使用 jprofiler 分析了我的 J2EE Web 应用程序。通过查看 vm 遥测图和记录的对象,我发现存在巨大的内存泄漏。使用 heap walker 我得出的结论是,由于 hibernate 条件、query.list、template.find、over-redid hashCode 和 equals 方法以及一些自定义请求处理器,存在大量内存泄漏。我无法理解的是内存泄漏是如何发生的。

我通过谷歌检查了很多,可以理解的是,标准比 HQL 慢,显然比 SQL 慢,但内存泄漏非常有趣。有没有可能发生内存泄漏?

记录对象屏幕下的哈希图对象增加到近 100%,内存泄漏图向上平滑。

我还向您展示了我的哈希码和等价甲醇,请查看:

public boolean equals(Object other) {
if ( !(other instanceof Associate) ) return false;
Associate castOther = (Associate) other;
return new EqualsBuilder()
.append(this.getAssociateId(), castOther.getAssociateId())
.isEquals();
}

public int hashCode() {
return new HashCodeBuilder()
.append(getAssociateId())
.toHashCode();
}

非常感谢。

最佳答案

EqualsBuilder 使用反射,它可以有 impact on perm gen space .

为什么要依赖这些?为什么不自己写呢?如果您使用 IntelliJ,它将生成可以完美运行而无需反射的方法。关注 Joshua Bloch's recipe你也会少一个依赖。

关于java - Profiler 下的 Hibernate 性能和内存泄漏问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5788519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com