現在、Java Webアプリケーションのプロファイルを作成しようとしています。 Eclipseと連携してNetbeans Profilerを使用しました。私のサーバー(Tomcat)はEclipseプラグインを介して実行されており、Netbeansプロファイラを使用してサーバーに動的に接続します。Java Web Appの出力をプロファイルして理解する方法
私は、ある時点でサーバがある環境でメモリ不足になった後に、主な問題があります。 1.大きなオブジェクトがメモリに残っていて、収集されずにメモリリークが発生します。または、 2.小さなオブジェクトが収集されずにメモリに割り当てられ続けます。
通常、2番目のものは見つけるのが難しいですが、1つの通常の症状は、時間に関係なくガベージコレクションを生き延びた生存者が増加し続けるということです。そして、それは私のWebアプリでは起こるようですが、実際には何の活動も行われていません。世代は例外なく一定の期間にわたって着実に増加します。私はガベージコレクションされていたはずのオブジェクトをどこかに再現していると思うようにしてください。
私はプロファイラでテストを実行しましたが、残念ながら私は実際にどのようにオブジェクトをピンポイントするのか分かりません。ガベージコレクションを数回行っても、特定のHASHMAPが世代数を増やしていたことに気付きました。
私は開始アプリケーションの次の数分で見たものの非常に簡単な概要を与える簡単なスクリーンショットを添付しています。
実際の記事などを指摘して、プロファイリングの意味を理解する方法と、私が犯人を捕まえるために行うべきことについて教えてくれたら、感謝します。
ご迷惑をおかけして申し訳ありません。
添付のスクリーンショットを見つけます。 alt text http://dl.getdropbox.com/u/1264228/Files/State.png