Eclipse RCPアプリケーションのメモリリークはどのように検出されますか?Eclipse RCPアプリケーションのメモリリーク
答えて
JRockit Mission Controlに付属のメモリリーク検出器をEclipse MATと一緒に試してみるとよいでしょう。それは強力な組み合わせです。両方のツールは開発用に自由に使用できます。
JRockit Mission Controlを使用すると、オンラインでヒープを検査し、時間のかかるスナップショットを取ることなく、実際の特定のタイプのオブジェクトを正確に表示できます。ビュー/エディタを閉じた後、エディタ、ビューまたはリスナオブジェクトがヒープ上に残っているかどうかを直接見ることができます。これは通常、あなたのビュー/エディタを保持するフレームワークリスナです。 Windows-> Preferences-> Memory Leak Detector-> Trendに行って、最も低いヒープ使用量を設定して、を0.0に設定してすべてのオブジェクトインスタンスを表示する必要があることを覚えておいてください。
alt text http://download.oracle.com/docs/cd/E11035_01/jrockit/intro/wwimages/memleak2.gif
はMATを使用すると、その後、漏れオブジェクトへの保持しているチェーンを見つけるために、ルートを通すために最短経路を使用することができます。あなたのコードを修正し
alt text http://dev.eclipse.org/blogs/memoryanalyzer/files/2008/04/path2gc_all.png
下記参照し、メモリリーク検出器で確認し、そのオブジェクトであるあなたは、エディタ/ビューを閉じるときに収集ごみ。
ウィンドウを開いている場合、最も簡単な方法は、単純に例を監視することです。ツールを使用している間、タスクマネージャのeclipse.exeプロセス。 RCP実行ファイルが別の名前を持っている場合は、これを監視する必要があります。 Unixでは、類似のツールを使うことができます(procおそらく?)。
利用可能な最も集中的なタスクを実行します(または、特定の機能が問題の原因と思われる場合は、それらを使用します)。集中的なタスクが完了した後にeclipse.exeが使用したメモリ量が減少しても、リークが発生する可能性があります。これにより、最終的にメモリ不足エラーが発生します。
eclipse.ini(または.ini)の "-Xmx"設定を使用して、アプリケーションで使用可能なメモリー量を減らすことで、メモリー不足エラーを早めることができます。例えば。 -Xmx256mは、最大256メガバイトが利用可能であることを意味します。明らかに、この設定はアプリを実行するのに十分である必要がありますが、設定を低くするとガベージコレクションが頻繁に行われ、リークがより顕著になります。
メモリプロファイラが必要です(他にも言及しているように)。適切なツールがあれば、問題を簡単に見つけることができます。我々が使用
を私達のテストのために、それは非常にうまく機能し、開発者が自分のマシン上でローカルに使用できるようにフローティングライセンスがあります。
基本的には、実行している操作のスナップショットを撮ってから、割り当てられたものと解放されていないものを見ます。
編集:追加することを忘れてしまった、このツールはEclipseに正しく統合されています。
最も簡単なソリューションはJava JDK:Java VisualVMです。これは、JDK 6更新7.
ので、binディレクトリ(Windowsの下jvisualvm.exe)に位置し
はまた、メモリプロファイラ、ヒープウォーカーとEclipse integrationが含まれています。
https://visualvm.dev.java.net/images/getstarted/vvm-anagram-profiler.png(あまりにも悪い、私がイメージタグを使用することはできませんよ)
を参照してください。- 1. Eclipse RCPアプリケーションのカスタムエラー
- 2. Eclipse RCPアプリケーションのデバッグ
- 3. ツールバーのカスタムボタンEclipse RCPアプリケーション
- 4. eclipse rcpアプリケーションでのsvnサポート
- 5. Eclipse RCPアプリケーション - マルチモニタ用のマルチウィンドウデザイン
- 6. ツールバーのテキストボックスEclipse RCPアプリケーション
- 7. eclipseアプリケーションのEclipse rcp disable exitボタン
- 8. Eclipse RCPアプリケーションでのkillシグナルの取得
- 9. Eclipse RCPアプリケーションのグローバル例外処理
- 10. 他のアプリケーションでEclipse RCP GUIを使用
- 11. ECLIPSE RCPアプリケーション:テーブルビューアの編集と更新
- 12. Eclipse RCPアプリケーションの更新方法
- 13. Eclipse RCPにSilverlightアプリケーションを埋め込む
- 14. Eclipse RCPアプリケーションでデバッグでエディタを開く
- 15. Eclipse RCPアプリケーションでSWTBotテストレコーダーを開く
- 16. Spring Beansを使用したEclipse RCPアプリケーション
- 17. Eclipse RCPとEclipse Plugin
- 18. のEclipse RCPは、
- 19. Eclipse RCPのケーススタディ
- 20. のEclipse RCP
- 21. のEclipse RCPアプリケーションアクティブタイトルバー
- 22. Eclipse RCPアプリケーション - アプリケーションがアイドル状態のときの検出方法
- 23. は、Eclipse RCP IDE
- 24. Eclipse RCP:カスタムコンソール
- 25. Eclipse RCP XMLMultiPageEditorPartエラー
- 26. eclipse rcp updates
- 27. Eclipse RCP Databinding
- 28. Eclipse RCP AspectJ configure
- 29. Eclipse RCPウィンドウ/ダイアログレジストリ
- 30. eclipseのplugin.propertiesメカニズムRCP