¿Cuál es la importancia del espacio PermGen en Java?Importancia de PermGen espacio
Respuesta
El espacio PermGen está reservado para objetos a largo plazo, en su mayoría Class
objetos cargados por ClassLoader
. PermGen no se recolectará como basura excepto en circunstancias muy especiales (específicamente, cuando el ClassLoader
que cargó esas clases queda fuera del alcance).
Se trata de una optimización de recolección de basura: si los objetos que no esperamos recolectar como basura se almacenan por separado, se compacta el espacio donde se almacenan los demás objetos, lo que reduce el trabajo del recolector de basura.
El ClassLoader al que se refiere es el Sistema cargador de clase? ¿Dónde se almacenan las clases cargadas por el cargador de clases de arranque? –
Las clases cargadas por el cargador de bootstrap son las que forman parte integral del lenguaje, como 'String' y' Object'. Esto es parte de la implementación nativa de la JVM, por lo que no hay una respuesta estándar con respecto a "dónde". – danben
Bien. Entonces, ¿el permgen contendrá las clases cargadas por el cargador de clases del sistema? –
La única cosa que realmente necesita saber es que el espacio PermGen está separado del montón general y no se ve afectado por el parámetro -Xmx
VM. Si tiene una aplicación que carga muchas definiciones de clase (como un servidor de aplicaciones o un IDE), entonces puede establecer el tamaño del espacio PermGen usando la opción de máquina virtual -XX:MaxPermSize
.
La generación permanente mantiene meta-datos que describen las clases de usuarios (clases que no son parte del lenguaje Java).
aplicaciones con grandes código-base puede llenar este segmento de la pila que hará que java.lang.OutOfMemoryError: PermGen
. Esto no se ve afectado por la configuración -Xmx o la cantidad de memoria que tiene en la máquina. Para establecer un nuevo tamaño inicial, use -XX:PermSize=64m
. Para establecer un tamaño máximo, utilice -XX:MaxPermSize=128m
¿Qué quiere decir con "clases que no son parte del lenguaje Java"? ¿Conoces alguna clase que no esté almacenada en PermGen? – danben
El PermGen es específico de las máquinas virtuales que tiene la recogida de basura generacional.
Si se utiliza, por ejemplo, JRockit, la "importancia de PermGen" es inexistente debido JRockit no tiene ese concepto.
Solía ser común, hace unos años, cuando comenzaron a aparecer los extraños errores "fuera de PermGen space" y que nadie sabía aún de quién era la falla (Tomcat + Hibernate + Sun VM solía activar esto) para reemplazar uno de los componentes (hoy en día se entienden los problemas, pero hace años, cuando comenzaron a cosechar, era casi imposible encontrar información sobre esto). Se podría sustituir Tomcat con resina o la máquina virtual de Sun con JRockit etc.
Creo que es importante señalar que PermGen no forman parte de las especificaciones de Java y sólo un detalle de implementación de la (bastante) algunas máquinas virtuales.
- 1. Aumentar el espacio permgen
- 2. java.lang.OutOfMemoryError: espacio PermGen
- 3. java.lang.OutOfMemoryError: error de espacio PermGen
- 4. Cómo analizar el espacio PermGen?
- 5. Error de espacio PermGen - Glassfish Server
- 6. Problema de espacio PermGen con Glassfish/Hibernate
- 7. ¿Por qué está creciendo el espacio PermGen?
- 8. qué hacer con tomcat PermGen espacio
- 9. "java.lang.OutOfMemoryError: PermGen espacio" en Maven construir
- 10. java.lang.OutOfMemoryError: PermGen espacio en Tomcat con Eclipse
- 11. Ahorro de espacio PermGen con varios cargadores de clases
- 12. tamaño de las clases de Java en el espacio PermGen
- 13. Evite Permgen Error de espacio al ejecutar Tomcat desde Eclipse
- 14. ¿Cómo averiguo programáticamente mi uso de espacio PermGen?
- 15. Tomcat 7 Primavera App IntelliJ IDEA 10.5 OutOfMemoryError: espacio PermGen
- 16. java.lang.OutOfMemoryError (espacio PermGen) y java.lang.ClassNotFoundException en la página jsp
- 17. Área de método y PermGen
- 18. PermGen y Pila, Diferencia y su significado
- 19. Errores de PermGen en Jenkins
- 20. Importancia y especialidad de la función de función importancia
- 21. java.util.regex: importancia de Pattern.compile()?
- 22. importancia de liberar memoria?
- 23. ¿Es el espacio PermGen de Java parte de la memoria total de VM?
- 24. ¿Cómo botar Permgen?
- 25. ¿Usar el espacio PermGen o el método de prácticas internas de "rodar mi propio yo"?
- 26. Importancia del sueño (0)
- 27. Importancia de las interfaces C#
- 28. ¿Se incluye permgen en -Xmx?
- 29. "PermGen" recurrente en Tomcat 6
- 30. Debug eclipse plugin project - PermGen space, error de memoria
posible duplicado de [¿Qué significa realmente PermGen?] (Http://stackoverflow.com/questions/318942/what-does-permgen-actually-stand-for) – rds