eclipse的垃圾收集器是否与默认值不同?

Sav*_*sis 3 java eclipse garbage-collection

从这里发布的问题和我的旧问题中我得到的印象是,无论何时你都不能明确地运行Java垃圾收集器.

如果你打电话给它,你只需指示系统只要能够或认为合适就给它打电话.

但在eclipse中,如果按"运行垃圾收集器"按钮,您会看到内存使用量立即减少.怎么可能?eclipse是否使用不同的垃圾收集器,是否可以访问我们没有的秘密API,或者我对GC的工作原理有何看法?

Jes*_*per 6

"普通"Java程序无法强制垃圾收集器运行.但是,使用Java虚拟机工具接口(JVMTI,用于将调试器连接到JVM的API)可以强制进行垃圾回收.

我不知道Eclipse是否只是调用System.gc()(它不强制垃圾收集),或者它是否使用JVMTI API来真正强制GC运行.

使用JVisualVM(包含在Sun JDK 6中),您可以连接到其他正在运行的Java进程,并按下按钮以在这些进程中运行垃圾收集器.