Я использую GC по умолчанию с 1.6.0_27-b07 (Sun's JRE) и из-за this Я не могу обнаружить увеличение памяти с помощью Runtime.getRuntime (). FreeMemory ().Может кто-нибудь пролить свет на то, как этого добиться?Должен ли я использовать другой GC?Какой из них?
Простая программа ниже печатает 0 для выделенной памяти.:( :(: (
import java.util.HashSet;
import java.util.Set;
public class MemoryUtils {
private static Set<String> set = new HashSet<String>();
public static void main(String[] args) {
long mem = Runtime.getRuntime().freeMemory();
// now create a bunch of objects and save them in the set
for (int i = 0; i < 100; i++) {
set.add("foo" + i);
}
long allocated = mem - Runtime.getRuntime().freeMemory();
System.out.println("Memory allocated: " + allocated); // ===> GIVES 0 !!!!
}
}