Comment puis-je prévenir la PermGen space erreurs dans Netbeans?
Toutes les 15 à 30 minutes Netbeans montre un "java.lang.OutOfMemoryError: PermGen space
". De ce que j'ai appris à partir de Google, ce qui semble être liée à des chargeurs de classes des fuites ou à des fuites de mémoire en général.
Malheureusement toutes les suggestions que j'ai trouvées étaient liées à des serveurs d'application et je n'ai aucune idée pour les adapter à Netbeans. (Je ne suis même pas sûr que c'est le même problème)
Est-il un problème dans mon application? Comment puis-je trouver la source?
- voir aussi stackoverflow.com/questions/717550/...
- Pourquoi ne pas vous mettre à niveau vers une version plus récente de NetBeans? 6.5 est vraiment vieux.
- Comme c'est à cette question. Je l'avais demandé il y a trois ans.
Vous devez vous connecter pour publier un commentaire.
C'est en raison de la constante de chargement de classe.
Java magasins de la classe de byte code et toutes les constantes (par exemple, des constantes de chaîne) en permanente tas qui ne sont pas des déchets collectés par défaut (qui font sens dans la majorité des situations, car les classes sont chargées une seule fois pendant la durée de vie d'une application).
Dans les applications qui, souvent, charger les classes au cours de toute une vie que sont:
ce comportement est mauvaise, car un tas remplit pleinement par la suite.
Vous devez activer permanente tas de collecte des ordures pour éviter cette erreur.
- Je utiliser les options de
(arrêté mon eclipse 3.4 de lancer "
java.lang.OutOfMemoryError: PermGen space
" donc, il convient également de travailler avec netbeans).Modifier: il suffit de noter que, pour Netbeans vous définissez ces options:
[Netbeans installation]\etc\netbeans.conf
Vous devriez prefixe ces options avec
-J
et les ajouter dansnetbeans_default_options
(voir les commentaires dansnetbeans.conf
pour plus d'informations).Please use CMSClassUnloadingEnabled in place of CMSPermGenSweepingEnabled in the future
. Toujours fonctionné bien.Essayez d'ajouter l'argument suivant netbeans netconf: -J-XX:MaxPermSize=256m
Voir ce lien sur la façon de définir la taille de PermSize. Plus probablement, ce n'est pas un problème de ton code, donc la seule solution serait d'augmenter la PermSize. J'ai trouvé que c'est assez souvent, lorsque vous travaillez avec JAXB. En général, si vous utilisez beaucoup de bibliothèques qui eux-mêmes dépendent également de nombreux autres fichiers jar, la taille par défaut de la PermGen space peut ne pas être assez grande.
Voir ces messages de blog pour plus de détails: Chargeur de classe fuites et Comment fixer le redoutable "de java.lang.OutOfMemoryError: PermGen space"
Si vous développez une application web, essayez de le mettre sur le serveur vm option
-Xmx512m -Xms512m -XX:MaxPermSize=512m
Allez dans Outils/Serveurs//Plate-forme/VM Options (Netbeans 7.4)
Vous pouvez modifier les options de démarrage de netbeans JVM en éditant le fichier /etc/netbeans.conf.
J'ai souvent ce genre d'erreurs quand je développe une Application web et je le déployer souvent. Dans ce cas, j'ai redémarrer tomcat de temps à autre.