我不是在寻找通常的"你只能使用System.gc()来回答Java中的GC ",这个问题根本不是什么.
我的问题不是主观的,而是基于现实:GC 可以用Java来强制实现.我们每天使用的许多程序都是这样做的:IntelliJ IDEA,NetBeans,VisualVM.
它们都可以强制 GC发生.
怎么做?
我认为他们都使用JVMTI,更具体地说是ForceGarbageCollection(注意"Force"),但我怎么能为自己尝试呢?
http://java.sun.com/javase/6/docs/platform/jvmti/jvmti.html#ForceGarbageCollection
还要注意,这个问题不是关于"为什么"我想要这样做:"为什么"可能是"好奇心"或"我们正在编写类似于VisualVM的程序"等.
问题是"你如何使用JVMTI的ForceGarbageCollection强制GC"?
是否需要使用任何特殊参数启动JVM?
是否需要任何JNI?如果是这样,究竟是什么代码?
它只适用于Sun VM吗?
任何完整和可编辑的例子都是最受欢迎的.