Eclipse RCP应用程序中的内存泄漏

Rej*_*eji 3 eclipse rcp memory-leaks

如何检测Eclipse RCP应用程序中的内存泄漏?

Kir*_*lin 6

您可能需要尝试使用JRockit Mission Control附带的Memory Leak Detector 和Eclipse MAT.这是一个强大的组合.这两种工具都可以免费用于开发.

使用JRockit Mission Control,您可以在线检查堆并查看实时特定类型的确切数量对象,而无需花费时间来拍摄快照.关闭视图/编辑器后,您可以直接查看堆上是否有编辑器,视图或侦听器对象.它通常是一个框架监听器,可以保存您的视图/编辑器.请记住,您必须转到Windows-> Preferences-> Memory Leak Detector-> Trend并将最低堆使用率设置为0.0以报告所有对象实例.

替代文字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

修改代码并使用内存泄漏检测程序验证关闭编辑器/视图时对象是否为垃圾回收.