studio significa que expected error enum java jvm jvm-arguments

java - significa - error class interface or enum expected android studio



¿Qué hace-XX: MaxPermSize? (4)

El espacio permanente es donde las clases, métodos, cadenas internalizadas y objetos similares utilizados por la VM se almacenan y nunca se desasignan (de ahí el nombre).

Este artículo de Oracle presenta de manera sucinta el funcionamiento y la parametrización del HotSpot GC y le aconseja que aumente este espacio si carga muchas clases (este suele ser el caso de los servidores de aplicaciones y algunos IDE como Eclipse):

La generación permanente no tiene un impacto notable en el rendimiento del recolector de basura para la mayoría de las aplicaciones. Sin embargo, algunas aplicaciones generan y cargan dinámicamente muchas clases; por ejemplo, algunas implementaciones de páginas JavaServer Pages (JSP). Estas aplicaciones pueden necesitar una generación permanente más grande para albergar las clases adicionales. Si es así, el tamaño máximo de generación permanente se puede aumentar con la opción de línea de comando -XX: MaxPermSize =.

Tenga en cuenta que oracle.com/technetwork/java/javase/tech/… lista los otros argumentos de HotSpot.

Actualización: a partir de Java 8, tanto el espacio permgen como esta configuración desaparecen. El modelo de memoria utilizado para las clases y los métodos cargados es diferente y no está limitado (con la configuración predeterminada). No deberías ver este error más.

Específicamente, ¿por qué ayudaría arreglar un problema de PermGen OutOfMemoryError?

Además, puntos de bonificación por una respuesta que me apunta a la documentación sobre los argumentos de JVM ...


En Java 8, ese parámetro se usa comúnmente para imprimir un mensaje de advertencia como este:

Java HotSpot (TM) Servidor de 64 bits Advertencia de VM: ignorando la opción MaxPermSize = 512m; el soporte fue eliminado en 8.0

La razón por la que recibe este mensaje en Java 8 es porque Permgen ha sido reemplazado por Metaspace para solucionar algunos de los inconvenientes de PermGen (como pudo ver por sí mismo, uno de esos inconvenientes es que tenía un tamaño fijo).

Para su información: un artículo sobre Metaspace: http://java-latte.blogspot.in/2014/03/metaspace-in-java-8.html


MaxPermSize es el tamaño máximo para el montón de generación permanente, un montón que contiene el código de bytes de las clases y se mantiene separado del montón de objetos que contiene las instancias reales.


-XX:PermSize -XX:MaxPermSize se usa para establecer el tamaño para la generación permanente.

Generación permanente: la generación permanente es donde se guardan los archivos de clase. Estos son el resultado de clases compiladas y páginas JSP. Si este espacio está lleno, activa una recolección de basura completa. Si la recolección de basura completa no puede limpiar las clases antiguas sin referencia y no queda espacio para expandir el espacio permanente, se produce un error de memoria insuficiente (OOME) y la JVM se bloqueará.