¿De qué manera la memoria metaespacio y Native Area se logró en Java?

ForInfinity:

Por lo que he entendido, el Área nativa dentro de la JVM es completamente fuera de límites para el recolector de basura. Dentro del Área nativo, en el que metaespacio se encuentra. En el metaespacio antes mencionado, tenemos áreas como la constante piscina, campo y método de Datos .

Desde el Área nativo es gestionado por la gestión de memoria en C ++ (o por lo menos así es como yo lo entiendo), ¿cómo es que ese metaespacio, que no es de un tamaño fijo, en vez crece dinámicamente, dependiendo de la cantidad de memoria que se necesita, no se ejecutará fuera de la memoria? Se permite colector de basura en el metaespacio, pero no el resto de los nativos de la zona? C ++ está gestionando la memoria no forma dinámica?

Ravi:

¿cómo es que metaespacio, que no es de un tamaño fijo

Puede limitar el tamaño mediante el establecimiento de valor por MaxMetaSpaceSizesobre la línea de comandos.

... no va a salir corriendo de la memoria?

Sí, en realidad se ejecuta fuera de la memoria. Cuando excede el uso de memoria disponible y obtendrá java.lang.OutOfMemoryError: Metaspaceuna excepción.

Se permite recolector de basura en el metaespacio

Si. La GC recogerá tanto la pila de Java y el metaespacio, pero no el montón nativo. Está gestionado por el que el código nativo es el dueño.

referencia:

3.2 Comprender la excepción OutOfMemoryError

Acerca de G1 del colector de basura, Generación Permanente y metaespacio

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=203694&siteId=1
Recomendado
Clasificación