Как я знаю, когда я запускаю сборку мусора с помощью метода System.gc(), он собирает все неиспользуемые и неуничтоженные объекты из кучи и очищает ее. Поэтому, когда я запускаю System.gc(); память JVM должна быть увеличена. но в приведенном ниже коде, когда я его запускаю, результат меня смущает.
Runtime rs = Runtime.getRuntime();
System.out.println("Free memory in JVM before Garbage Collection = " +
rs.freeMemory());
rs.gc();
System.out.println("Free memory in JVM after Garbage Collection = " +
rs.freeMemory());
вывод
Free memory in JVM before Garbage Collection = 12184624
Free memory in JVM after Garbage Collection = 12184360
см. значение до больше, чем значение после.
Пожалуйста, поправьте меня, если я ошибаюсь, или объясните мне, почему это происходит.
Спасибо.
ForceGarbageCollection
а>. - person trashgod   schedule 08.08.2013