Estoy desarrollando en la plataforma elevadora estándar (maven y embarcadero). Estoy en repetidas ocasiones (una vez cada dos días) conseguir esto:Problemas de PermGen con el elevador y el embarcadero
Exception in thread "[email protected]" java.lang.OutOfMemoryError: PermGen space
2009-09-15 19:41:38.629::WARN: handle failed
java.lang.OutOfMemoryError: PermGen space
Esto está en mi entorno de desarrollo. No es un problema porque puedo seguir reiniciando el servidor. En el despliegue, no estoy teniendo estos problemas, así que no es un problema real. Tengo curiosidad.
No sé demasiado sobre la JVM. Creo que estoy en lo cierto al pensar que la memoria de generación permanente es para cosas como clases y cadenas internas. Lo que recuerdo es un poco mezclado con el modelo de memoria .NET ...
¿Alguna razón por la que esto está sucediendo? ¿Los valores predeterminados son increíblemente bajos? ¿Tiene que ver con todos los objetos auxiliares que Scala tiene que crear para objetos Function y cosas similares de FP? Cada vez que reinicio Jetty con un código recién escrito (cada pocos minutos), me imagino que volverá a cargar clases, etc. Pero aun así, no puede ser así, ¿no? ¿Y la JVM no debería poder tratar con un gran número de clases?
Saludos
Joe
Como se mencionó en la https://web.archive.org/web/20150105090518/http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language. Artículo html: "El recolector de basura generacional de la JVM está optimizado para situaciones como esta y debido a que los objetos creados implícitamente son efímeros, obtendrán GC muy bien". pero si esos objetos no tienen corta vida, esa es otra historia. – VonC