Eclipse:垃圾回收器按钮

44
当我在 Eclipse 中按下“运行垃圾回收器”按钮时会发生什么?它只是调用 System.gc() 吗?
4个回答

78

是的,它严格调用JVM,而不是内部的Eclipse功能(请参见此线程)。

别忘了使用Memory Analyzer来检查在Eclipse会话中是否有内存泄漏时垃圾收集根路径(在Head Dump中)。

注意:如果您怀疑在Eclipse会话中存在一些内存泄漏,请选择Eclipse首选项中“常规”部分中的“显示堆状态”才能看到该按钮:

alt text


我花了几分钟时间才明白如何为rajasti277的提示做出反应。在左侧面板中点击“常规”选项。 - GinoA
非常感谢,这很有帮助 :) - Aaron Socurites
一个流行的面试问题是垃圾回收是否可以强制执行,简短的答案是“不行”,因为System.gc()仅仅向JVM提供了一个垃圾回收应该运行的“提示”-也就是说,它并不能保证。现在,有两个问题:(1)在这种情况下,“提示”到底意味着什么?(2)Eclipse中的按钮是否比仅仅提供一个“提示”更多?看起来是这样的,因为按下按钮后,已使用的堆内存立即减少。 - Ebony Maw

21

是的,调用了 System.gc()

非常有用的在 Eclipse –>Preferences–>General-> Show heap status 中。

enter image description here

然后你可以在右下角看到运行垃圾回收的 "垃圾桶"。=)


1
感谢您发布这些步骤! - Petro

4

是的,当“运行垃圾回收器”按钮被按下时,System.gc()会被调用。


2
“Garbage Collection”是通过销毁未使用的对象来回收运行时未使用内存的过程。Java Garbage Collection是Java程序执行自动内存管理的过程。Java程序编译成可以在Java虚拟机(JVM)上运行的字节码。
要启用Eclipse垃圾收集器按钮并查看内存状态,请执行以下步骤:

enter image description here

点击 Windows 下拉菜单。 选择偏好设置。 勾选/启用“显示堆状态”。

enter image description here

点击“应用并关闭”。现在,“GC按钮”和“内存状态”已可见,您可以使用它来回收Java应用程序不再使用的内存,并将此内存回收利用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接