手続きの類人猿を容易にするために、Javaのガベージコレクションのメカニズムは、我々は明示的にリソースを解放する必要はないかもしれません。しかし、弱く、美しいプログラム猿、貧しい人々を脅かし、後ろに座るとリラックスし、OOM暗い静かな(華)スピリット(ノン)で非表示にするのが好きされていません。
一般的には、健康的なプログラムは、それがOOMに表示されません。メモリは順番に、誕生から死までのオブジェクト。しかし、いくつかのヒューマンエラーに、いくつかのオブジェクトは、多くの場合、制裁GCをエスケープします、GCはないゴミ箱に、外に飛び込みました。この時間は、メモリリークが発生します。
メモリリーク、アプリケーション・プログラムを参照すると、メモリと、このメモリを使い果たし(オブジェクトがもはや必要)、メモリ空間が提出されている解放しません。いくつかの偶然のメモリリークは、大きな問題は非常に良いではなく、していないが、我々はその点、メモリの曹操プルを引っ張っする必要はありません。新しいオブジェクトを生成するのに十分なスペースがないまで、それは常にメモリリークが、ある場合でも、それがOOMにつながります。
可能な場合はメモリリーク
OOM例外をスロー
プログラムは、OutOfMemoryErrorが発生をスローした場合、あなたはあまりにもけちではないと思われる場合、プログラムの十分なスペースを考えると、あなたはメモリリークを疑うことができます
メモリは上昇し続け
滑らかな代謝を有していなければならない健康プログラムは、メモリ使用量が一定の範囲に維持されるべきです。メモリが危険な値に到達しても、急騰し続けた場合でも、それはメモリリークを疑わすることができます。
ビューGCケース
grepのアプリケーション名キーワード| pidのアプリケーションを取得するには、まず、あなたはJPSのjavaコマンドまたはPS -efを使用することができます
あなたは、E領域が空いた後のオブジェクトを作り続ける、(O)増加歳後エデン(E)のオブジェクトを作り続け、そしてフルを見ることができます。(マルチプログラム実行時、またはすぐにスピードを言及する対象作られ、最終的にOOMがスローされます)
ライブオブジェクトを見ます
パーサを配置ライブオブジェクトの異常な増殖、によれば、この目的は、おおよそ可能メモリリークを推定することができる使用。