recolector programacion ejemplo basura java garbage-collection performance

programacion - recolector de basura java ejemplo



¿Qué desencadena una recolección de basura completa en Java? (2)

Esto depende en gran medida de las opciones de jvm y de la jvm que use.

Por esta razón, le recomiendo que consulte el libro "Java Performance" bý John and Hunt.

Me pregunto cuáles son las situaciones exactas que activan Full Garbage Collection en Java.

Los más obvios son:

  • Quedando sin gen viejo
  • Quedando sin perm gen
  • Llamando a System.gc ()

¿Qué pasa con otros casos que causan gc completo? Particularmente:

  • No tener suficiente espacio libre en Survivor Space para copiar objetos de Eden.
  • Las colecciones menores no pueden hacer frente a la tasa de asignación de objetos nuevos (no sé cómo).

Estoy ejecutando Sun Java 1.6 y utilizando Concurrent Mark-Sweep y ParNew para nueva generación.


He observado una situación más que desencadena un GC completo en Java Hotspot VM 1.6 64bit en Ubuntu, utilizando el Marcado de Marcado Simultáneo:

Si -XX: el valor de PermSize no es igual a -XX: MaxPermSize (por ejemplo, es más pequeño), ocasionalmente ocurre una GC completa cuando Java necesita expandir PermGen (aunque no necesita asignar más memoria que MaxPermSize). Por lo tanto, establecer -XX: PermSize y -XX: MaxPermSize para que sea el mismo parece una buena idea.