2015-03-03 1 views
0

J'ai récemment découvert les faits suivants:Perm gen grandissant

La première fois que je navigue à travers les pages de mon application, perm gem grandit de manière significative. (C'est normal)

Mon perm gen grandit lorsque je navigue à travers les pages de mon application que j'ai déjà parcouru. Mais cela ne se produit que si j'arrête d'utiliser mon application pendant quelques minutes. Si je ne fais pas cela perm gen reste le même si je continue à naviguer. L'augmentation n'est pas beaucoup mais je pense que ce n'est pas un comportement normal.

J'ai également remarqué que perm gen ne descend jamais ou il descend un peu.

Quelle peut être la cause de cela? J'utilise Java6, Tomcat6, Hibernate, Spring 3.3.4 et JSF 1.2.

Répondre

0

PermGen erreurs et les fuites sont difficiles à étudier. Pour les gérer, la première chose à faire est de vérifier la statique. Votre application peut gérer certaines statistiques qui contiennent des références à des objets qui auraient dû être récupérés mais qui sont toujours marqués comme accessibles parce qu'ils sont référencés par ces statistiques. Par exemple, vous utilisez Spring, et au printemps, les beans sont Singleton par défaut, ce qui peut être une source de problèmes PermGen.

Pour en savoir plus sur les objets en mémoire, vous pouvez utiliser certains outils de profilage, tels que VisualVM. Il peut vous aider à déterminer combien d'instances d'une classe donnée contient Tomcat et vous donner une idée de l'emplacement de la fuite.

Pour en savoir plus sur les erreurs et problèmes de PermGen et PermGen, vous pouvez consulter The java.lang.OutOfMemoryError: PermGen Space error demystified