...
b. Java をダブルクリックする。
Java Control Panel が開きます。
c. Java Tab をクリックする。
d. Java Applet Runtime Settings の View をクリックする。
システムにインストールした JRE の Java ランタイム設定のリストが表示されます。
e. JRE の側の JavaRuntime Parameters 項目をクリックし、JProfiler Perform required modifications で特定された情報を入力する。
例えば、-agentlib:jprofilerti=port=8849 "-Xbootclasspath/a:C:\Program Files\jprofiler5\bin\agent.jar"を入力します。
...
注: JProfilerの評価コピーを使用する場合、評価ダイアログが表示されます。
Evaluate をクリックし、”Session Startup” ダイアログを表示開始します。
2. OK をクリックします。
“Connection status” ダイアログが表示されます。
3. プロファイルしたいアプリケーションを開始します。
4. Jprofiler の左側の VM Telemetry Views をクリックします。
その後、下の Memory タブをクリックします。
5. Jprofiler でアプリケーションを使用し、パフォーマンスを見ることができます。
次のグラフはメモリーリークが付いたアプリケーションを表示しています。
メモリーリークソースを確認する
1. をクリックすると、JVM がオブジェクトの収集を始めます。
2. Memory Views をクリックします。
3. view をフィルターし、Nexaweb のオブジェクトのみを表示します。フィルターに com.nexaweb を入力し、Return キーを押します。
4. View > Mark Current Values を選択します。
これにより、Jprofiler がアプリケーションの全てのクラスとそれぞれのinstance数を記憶します。
それに加え、Memory view に Difference column を追加します。
5. をクリックすると JVM がオブジェクトの収集を始めます。
...
7. Difference column に値の入ったオブジェクトを選択し、 をクリックします。
Jprofile は現在のスナップショットを捨てる様促すダイアログを表示し、すでに選択されている場合、OK をクリックします。
JProfiler はスナップショットのオプションを選択するよう促すダイアログを表示します。
8. Remove weakly referenced objects をチェックし、OK をクリックします。
9. オブジェクトをダブルクリックします。
“New Object Set” ダイアログが表示されます。
10. References をクリック後、OK をクリックします。
Jprofiler が Reference グラフを表示します。
11. オブジェクトを右クリックし、”Show Paths to GC Root” を選択します。
“Path to GC Roots” オプションダイアログが表示されます。
12. Single root をクリックし、OK をクリックします。
これによりオブジェクトにはリリースしないメモリーの永続オブジェクトである GC root オブジェクトからのリンクを配置し表示します。
“GC root” は黄色で表示されます。
13. 選択されたオブジェクトから GC root へのパスに従い、 コレクションを探し、次のような [] のついたタイトルが表示されます :
コレクションは通常、配列またはハッシュ表です。アプリケーションがコレクションにオブジェクトを配置し、コレクションを記憶していないため、だいたいこれらによってメモリーリークが発生します。しかし、コレクションが参照されるため、破棄することが出来ません。
...