jprofiler を使用して J2EE Web アプリケーションのプロファイルを作成しました。VM テレメトリ グラフと記録されたオブジェクトを調べると、大量のメモリ リークがあることがわかりました。ヒープ ウォーカーを使用すると、休止状態の基準、query.list、template.find、過剰な redid hashCode、equals メソッド、および一部のカスタム リクエスト プロセッサが原因で、大量のメモリ リークが発生していると結論付けます。私が理解できないのは、メモリリークがどのように発生するかです。
私はGoogleで多くのことをチェックしましたが、基準が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();
}
どうもありがとう。