Java en tiempo de ejecución Resumen área de datos

directorio

área de datos de la figura de tiempo de ejecución se divide

Descripción detallada

Contador de programa

 Java Virtual Machine pila

    montones de métodos nativos

 montón de Java

distrito métodos

directo a memoria


área de datos de la figura de tiempo de ejecución se divide

Descripción detallada

Contador de programa

 

  • Enhebrar privado, para acceder a una instrucción de código de bytes que se ejecutará al lado, es un indicador de flujo de control del programa, ramificación, bucles, ramificación, manejo de excepciones, y otra de recuperación de las funciones básicas de rosca se apoya en el mostrador completa

 Java Virtual Machine pila

 

  •   Enhebrar privada, cuando se ejecuta cada método, las máquinas virtuales Java están sincronizados para crear un marco de pila [Ilustración] (marco de pila) para el almacenamiento de tabla de variables locales, la pila de operandos, el enlazador dinámico, y otra información para la exportación
  • A menudo dicha pila pila que aquí hay una pila de máquina virtual
  •  Requerido tabla de variables locales creado durante el espacio de memoria asignado compilación, al entrar en un método, este método requiere mucho espacio para las variables locales asignados en el marco de la pila está completamente determinado ranura variable determinante medios (longitud de 64 bits de largo y doble tomar hasta dos variables de ranuras de datos, el uso que resta sólo un tipo de datos)
  •  StackOverflowError 和 OutOfMemoryError

    montones de métodos nativos

  •  Para utilizar para la máquina virtual de servicios método local (Nativo), "Java Virtual Machine" Especificación del idioma nativo pilas de método en los métodos utilizados, y el uso de la estructura de datos y no hay requisito obligatorio
  •  StackOverflowError 和 OutOfMemoryError

 montón de Java

  •   Cuando la máquina virtual se inicia para crear compartida por todos los temas, "casi" todas las instancias de objetos están aquí para asignar memoria (debido a los avances en la tecnología de compilación en tiempo real, en especial la tecnología de análisis de escape cada vez más potentes, asignados en la pila, reemplazando el escalar [Ilustración] optimización medios ha llevado a algunos cambios sutiles en voz baja)
  • montón GC
  •  "Nueva Generación" "Old Age" "nombre permanente" "espacio Edén" "Desde el espacio Survivor" "espacio para Supervivientes", la zonificación es sólo una parte de las características comunes del recolector de basura o diseñarlo
  • Y el establecimiento de los parámetros -Xmx -Xms

distrito métodos

  • Varios hilos de acción, "no-heap" (Non-Heap)
  • --- fuente permanente de generación de llamada fue el equipo de diseño de la máquina virtual HotSpot eligió el colector generacional está diseñado para ampliar el área de método, o usar el método para lograr área generaciones permanente solamente, de manera que recolector de basura HotSpot puede administrar como el almacenamiento dinámico de Java al igual que esta gestión de memoria, lo que elimina la necesidad de trabajar específicamente por escrito al código de gestión de memoria para la zona método
  • [Recuperado piscina constante y descarga del tipo de memoria] reciclaje objetivos esta zona es principalmente para el reciclaje de piscina constante y el tipo de descarga, en general, el efecto de la recuperación de la región más difícil satisfactorio, especialmente el tipo de desinstalación , las condiciones pueden ser muy duras, pero esta parte del área de recuperación y, a veces incluso necesario
  • [JDK8 inicio, elemento permanente de la generación de residuos implantado en el espacio de memoria local (Meta-espacio) en el lugar, el tipo de información se encuentra principalmente]
  • [Conjunto de constantes de tiempo de ejecución]

                1, el contenido del archivo piscina constante preestablecido Clase (Constant Tabla Pool) de
                2, durante el funcionamiento de la nueva constante pueden ser colocados (Intern () de la clase String) piscina
            -XX: MaxPermSize

directo a memoria

            No forma parte del área de datos de la máquina virtual está en ejecución, el recién añadido en JDK 1.4 NIO (Nueva Entrada / Salida) tipo, basado en la introducción de un canal (Channel) y un tampón (Tampón) en el modo I / O, que puede bibliotecas nativas utilizando directamente fuera de la pila de memoria asignado, entonces la pila dentro DirectByteBuffer Java objetos almacenados como una referencia por la presente memoria para funcionar. Esto puede mejorar significativamente el rendimiento en algunos escenarios que se eviten los datos replicados de ida y vuelta a la pila y la pila en Java Native

Referencia: desde "la comprensión en profundidad de la máquina virtual Java Tercera Edición"

Publicado 40 artículos originales · ganado elogios 12 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/JacksonKing/article/details/104779427
Recomendado
Clasificación