Я не ищу обычного "вы можете только намекнуть GC на Java, используя ответы System.gc()", это совсем не то, о чем этот вопрос.
Мои вопросы не субъективны и основаны на реальности: GC может быть вынужденным на Java для факта. Многие программы, которые мы используем ежедневно, делают это: IntelliJ IDEA, NetBeans, VisualVM.
У всех может быть force GC.
Как это делается?
Я полагаю, все они используют JVMTI и, более конкретно, ForceGarbageCollection (обратите внимание на "Сила" ), но как я могу попробовать это для себя?http://java.sun.com/javase/6/docs/platform/jvmti/jvmti.html#ForceGarbageCollection
Также обратите внимание, что этот вопрос не касается "почему", я бы хотел сделать это: "почему" может быть "любопытством" или "мы пишем программу, подобную VisualVM" и т.д.
Вопрос в том, "как вы принудительно используете GC с помощью JVMTI ForceGarbageCollection"?
Нужно ли запускать JVM с любыми специальными параметрами?
Требуется ли какое-либо JNI? Если да, то какой именно код?
Работает ли он только на виртуальных машинах Sun?
Приветствуется любой полный и компилируемый пример.