私はSpring Web MVCに取り組んでおり、最近java.lang.OutOfMemoryError: Java heap spaceに遭遇しました。
だから、私はそれについて読んでいましたが、私がしている大きな間違いは、使用されているオブジェクトを参照していないことです。そのため、GC は大量のメモリをクリーニングしていません。
問題は、いつそれを逆参照するかです。
基本的なアウト フローは次のとおりです。
From front end user sends a request
server calls a library with the users request
library returns it a big chunk of array of results.
server forwards it to front end.
この時点まで、結果オブジェクトが必要なため、結果配列を逆参照できません。私は正しいですか?したがって、ユーザーが新しいリクエストを送信したときに、結果配列を消去して、新しいリクエストでライブラリを呼び出す必要があります。
また、-XX:+HeapDumpOnOutOfMemoryError を使用してダンプ ファイルを取得しました。しかし、プロジェクトフォルダーにダンプファイルが表示されません。ログを見ると、ダンプ ファイルが作成されていることがわかります。このケースに遭遇した人はいますか?