-JVM Java Virtual Machine memoria de sintonización de introducción

A. La nueva generación, de antaño, nombre permanente

La nueva generación se divide en tres regiones, una región Eden y dos zonas del superviviente, la relación entre ellos (8: 1: 1), esta relación es que ser modificado. En circunstancias normales, el objeto principal se asigna a la nueva generación de la zona de Edén, en algunos casos también pueden ser asignados directamente en la vieja era. (Copia aquí el uso de la máquina virtual de Java cada vez que utilice la nueva generación de Edén y donde un sobreviviente (De), después de un menor de edad GC, Eden y sobreviviente objetos también se vive una vez copiado en otra pieza del superviviente del espacio algoritmo GC), finalmente limpiar el Edén y el espacio dedicado solo sobreviviente (De). En este momento, la edad del espacio en el objeto de sobrevivir superviviente se establece en 1, después de cada uno de estos objetos en una zonas superviviente conseguir a través de la GC, su edad incrementa en uno, cuando el objeto llega a cierta edad edad (por defecto 15), el vamos a pasar a la vieja era.

En la nueva generación cuando GC, es posible encontrar otra pieza del espacio sobreviviente no hay suficiente espacio para guardar una nueva generación de objetos vivos recolectados para abajo, estos objetos irán directamente al año viejo asignando mecanismo de garantía;
Aquí Insertar imagen Descripción

1.Eden Distrito

área de Eden se encuentra en la joven generación de pila de Java, donde el nuevo objeto se asigna memoria, porque la pila es compartida por todos los temas, y por lo tanto tiene que bloquea la memoria asignada en el montón. El JDK de Sun para mejorar la eficiencia, se le asignará a cada nuevo hilo en una exclusiva espacios independientes Edén por el hilo, este espacio se llama TLAB (Tema Asignación Local Buffer). asignación de memoria no tiene que bloquear en el TLAB, por lo tanto JVM intentará asignar el TLAB cuando el objeto de asignar hilo de la memoria. Si el objeto es demasiado grande o TLAB agota, que todavía puede ser asignada en el montón. Si ha quedado sin memoria Eden Distrito llevará a cabo una GC Minor (jóvenes GC).

2.Survivor a partir de

La supervivencia misma área y distritos Eden son la generación joven de almacenamiento dinámico de Java. distrito Survival tiene dos, uno llamado de área a área como la otra, estas dos zonas es relativa en el caso de una GC Minor después, de región a región y ser intercambiables. En el caso de menores de GC, la zona Eden y el área Survivalfrom pondrán algunos objetos todavía vivo copiados de la Supervivencia a la zona y borrar la memoria. La supervivencia a algunos de la zona tendrá que sobrevivir la edad suficiente para oponerse a la vieja generación.

3. La vieja generación

Se almacenan en la vieja generación de mayor tiempo de supervivencia, el tamaño de los objetos grandes, utilizar etiquetas para organizar algoritmo de generación de edad. Años de edad, generación de capacidad es completa, dará lugar a una mayor GC (GC completa), la recuperación de recursos objetos generación vieja y la nueva generación ya no está en uso.

En segundo lugar Resumen:

  1. Menor GC está sucediendo en la nueva colección de generación de basura, el algoritmo utiliza la replicación;
  2. En cada nueva generación de espacio utilizado es no más de 90%, que se utiliza principalmente para almacenar objetos recién nacido;
  3. Menor GC después de cada región de recogida y una zona superviviente del Edén han sido vaciados;
  4. de viejas uso de GC completa, utilizando la marca - algoritmo de barrido;

recursos:

Publicados 215 artículos originales · ganado elogios 135 · Vistas 1,14 millones +

Supongo que te gusta

Origin blog.csdn.net/weinichendian/article/details/104938929
Recomendado
Clasificación