2016-08-22 3 views
-2

今日私のアプリケーションでこの問題が発生しました。 シナリオは:私たちはそれをクリックすると、データベースからレコードの不足をロードするロードボタンがあります。しかし、問題は、OutOfMemoryErrorを与えているリフレッシュボタンをクリックして同じレコードをリロードすることです。最初の試みですべてのレコードを正常にロードしようとしているが、なぜそれをリフレッシュする上で例外が発生しているのかを簡単に説明することができます。OutOfMemoryErrorを取得する主な原因は何ですか?

このシナリオを検討するのに役立つリソースがあれば、多くの役に立ちます。 ありがとうございました...

+1

あなたはそれらを再ロードするときに、古い結果は、もはやメモリを占有している確認していますか? – Mark

+0

これはhttps://plumbr.eu/outofmemoryerror/java-heapspaceの助けになります – dhS

+0

このプロジェクトはすでに開発されており、先週私はそれに取り組んでいますが、それについて深い知識はありません。あなたは古い結果がもはやメモリを占有していないことをどうやって確認できるのかをお勧めしますか?申し訳ありませんが、セキュリティと企業ポリシーのためにここにコードを掲載することはできません。一般的なexpatiationはまた私に多くの助けになる場合。ありがとう。 –

答えて

-2

私のアプリケーションにはスレッド処理がたくさんあることがわかりました。私は、以下のコマンドを使用してサーバのスタックサイズを縮小しようとしました。

-Xss512k(これにはJavaスレッドのスタックサイズを設定)

ここに私はこの問題を解決するために使用されているようresourceです。

+0

これは、*原因*の質問には答えません。あまりにも多くのスレッドを作成したことを確認して、累積されたスタックサイズが実際にはある制限を超えていることを確認できますか? –

0

唯一の理由は、十分に解放せずに常に新しいオブジェクトを作成しているか、あまりにも多くのスレッドを作成しているということです。

Java VisualVM's profilerを使用すると、メモリプロファイリングを行うことができます。これにより、オブジェクトがメモリ内にあり、他のオブジェクト/スレッドがそれらを参照している概要を得ることができます。

Java VisualVMは、SunのJDKの一部である必要があります。

も参照してください:

関連する問題