Esto podría ser bastante básico, pero era muy curioso de saber. He aquí el fragmento de código y la salida¿Qué está recolectando GC aquí?
public class PlainSystemGC {
public static void main(String ...strings) {
System.out.println("Free Memory (Before GC): " + Runtime.getRuntime().freeMemory());
System.gc();
System.out.println("Free Memory (After GC): " + Runtime.getRuntime().freeMemory());
}
}
y la salida
Free Memory (Before GC): 1859640
Free Memory (After GC): 1911768
estoy interesado en saber lo que está GC recogiendo aquí, ya que no se crean objetos.
¿Cuál es la memoria que se está liberando? (Y que también 52kb)
@JSauer - Se da exactamente los mismos resultados, incluso si se ejecuta 100 veces
No siempre es lo mismo: http://ideone.com/5UkgE (122416 liberado) – NullUserException
@NullUserExeception - La cantidad de memoria liberada puede ser diferente en diferentes JVMS, pero el número liberado sería el mismo en todos diferentes ejecuciones del mismo código – JWhiz