メモリリークのトラブルシューティング方法 - のためのインタビューのトピック

手続きの類人猿を容易にするために、Javaのガベージコレクションのメカニズムは、我々は明示的にリソースを解放する必要はないかもしれません。しかし、弱く、美しいプログラム猿、貧しい人々を脅かし、後ろに座るとリラックスし、OOM暗い静かな(華)スピリット(ノン)で非表示にするのが好きされていません。

一般的には、健康的なプログラムは、それがOOMに表示されません。メモリは順番に、誕生から死までのオブジェクト。しかし、いくつかのヒューマンエラーに、いくつかのオブジェクトは、多くの場合、制裁GCをエスケープします、GCはないゴミ箱に、外に飛び込みました。この時間は、メモリリークが発生します。

メモリリーク、アプリケーション・プログラムを参照すると、メモリと、このメモリを使い果たし(オブジェクトがもはや必要)、メモリ空間が提出されている解放しません。いくつかの偶然のメモリリークは、大きな問題は非常に良いではなく、していないが、我々はその点、メモリの曹操プルを引っ張っする必要はありません。新しいオブジェクトを生成するのに十分なスペースがないまで、それは常にメモリリークが、ある場合でも、それがOOMにつながります。

可能な場合はメモリリーク

OOM例外をスロー

プログラムは、OutOfMemoryErrorが発生をスローした場合、あなたはあまりにもけちではないと思われる場合、プログラムの十分なスペースを考えると、あなたはメモリリークを疑うことができます

メモリは上昇し続け

滑らかな代謝を有していなければならない健康プログラムは、メモリ使用量が一定の範囲に維持されるべきです。メモリが危険な値に到達しても、急騰し続けた場合でも、それはメモリリークを疑わすることができます。

ビューGCケース

grepのアプリケーション名キーワード| pidのアプリケーションを取得するには、まず、あなたはJPSのjavaコマンドまたはPS -efを使用することができます

あなたは、E領域が空いた後のオブジェクトを作り続ける、(O)増加歳後エデン(E)のオブジェクトを作り続け、そしてフルを見ることができます。(マルチプログラム実行時、またはすぐにスピードを言及する対象作られ、最終的にOOMがスローされます)

ライブオブジェクトを見ます

パーサを配置ライブオブジェクトの異常な増殖、によれば、この目的は、おおよそ可能メモリリークを推定することができる使用。

おすすめ

転載: blog.51cto.com/14230003/2423239