Tomcat + weld + JSF : java.lang.OutOfMemoryError: PermGen space

By , 01/06/2013

Après avoir démarré une application utilisant tomcat, weld-servet et JSF2, je me suis rendu compte que j’obtenais rapidement des erreurs de mémoire sur la PermGen space. En gros mon application, aussi petite soit elle, utilisait beaucoup plus de classes que ce que je pensais et surtout que ce que la JVM de Sun pouvait contenir par défaut.

Pour rappel, cette partie de la mémoire est utilisée dans les JVM de Sun pour stocker les classes chargées par le classloader, elle ne se vide jamais sauf si l’on fait des actions directement sur le classloader. La valeur par défaut de cette mémoire est de 64Mo.

A priori, cette valeur n’est pas assez grande pour contenir l’ensemble des classes chargées par weld-servlet et JSF2 dans un tomcat. Pour éviter de retrouver ces erreurs de mémoire, il faut donc l’augmenter avec le paramètre dans la JVM :

-XX:MaxPermSize=256m

Il est possible de voir l’évolution de cette mémoire avec le programme VisualVM qui est fourni par défaut dans une JDK.

Leave a Reply


− two = 0

OfficeFolders theme by Themocracy