"Comprensión profunda de la máquina virtual", lectura de notas, asignación de memoria y estrategia de reciclaje

Asignación de memoria y estrategia de reciclaje.

  • Resumen
    • Los objetos se distribuyen principalmente en el distrito de Eden de la nueva generación.
    • Si se inicia el búfer de subproceso local (tlab), la prioridad se asigna según el subproceso.
    • Algunos objetos grandes se asignarán directamente en la generación anterior.
    • Las reglas de asignación no son fijas y dependen principalmente de la combinación del recolector de basura y la configuración de parámetros relacionados.
  • -XX: + ImprimirGCDetails
    • Imprimir información de GC
  • Los objetos se asignan primero en Eden
    • Cuando Eden no es lo suficientemente continuo como para asignar objetos, se activa el GC menor para transferir los objetos vivos de Eden y los objetos Survivor a otro Superviviente.
    • Si el espacio de Survivor no es suficiente para el almacenamiento, se transferirá a la generación anterior por adelantado a través del mecanismo de garantía de asignación.
  • Los objetos grandes van directamente a la vieja generación.
    • Objetos grandes: objetos que requieren mucho espacio continuo en la memoria.
    • -XX: PretenureSizeThreshold = xxx (byte)
      • Establecer el umbral para objetos grandes. Vale la pena asignar objetos más grandes que esta configuración directamente en la generación anterior.
      • El propósito es evitar que se copie mucha memoria entre el área de Eden y las dos áreas de Survivor.
      • Solo admite Serial y ParNew
  • Los objetos longevos entran en la vejez
    • Contador de edad de objeto
    • Cuando el sujeto primero Minor Gc y pasa a Survivor, la edad del sujeto se establece en 1.
    • Después de cada experiencia Minor Gc en Survivor, edad +1;
    • Cuando la edad aumenta a un cierto nivel (por defecto 15), luego asciende a la vejez
    • -XX: MaxTenuringThreshold
  • Determinación dinámica de la edad del objeto
    • Si la suma del tamaño de todos los objetos en el espacio Survivor de la misma edad es mayor que la mitad del espacio Survivor, entonces todos los objetos mayores o iguales a la edad entran directamente en la vejez.
  • Garantía de asignación de espacio
    • Antes de Minor GC, la máquina virtual verificaba si el espacio contiguo más grande disponible en la generación anterior era mayor que el tamaño de todos los objetos en la nueva generación o el tamaño promedio de las promociones anteriores.
    • Si es mayor, se considera que realiza GC menor, de lo contrario, GC completo
    • Antes de 1.6, el comienzo era verificar el tamaño de todos los objetos en la nueva generación. Si pasaba, entonces se utilizaba directamente GC menor. Si no pasa, se juzga si el valor de configuración de HandlePromotionFailure permite el fallo de la garantía. Si está permitido, el GC menor se realizará solo si se considera que es mayor que el tamaño promedio de las generaciones anteriores. De lo contrario, el parámetro no está permitido o el tamaño no está permitido, entonces GC completo
Publicado 24 artículos originales · elogiado 0 · visitas 101

Supongo que te gusta

Origin blog.csdn.net/jiangxiayouyu/article/details/105614254
Recomendado
Clasificación