Question

Je reçois cette erreur lorsque j'exécute ou débogue mon GA / AI à partir de MyEclipse:

Exception dans le fil " main " java.lang.OutOfMemoryError: espace de pile Java

eclipse.ini ressemble à ceci:

-showsplash com.genuitec.myeclipse.product
--launcher.XXMaxPermSize 256m
-vmargs
-Xms128m
-Xmx512m
-Duser.language=en 
-XX:PermSize=128M 
-XX:MaxPermSize=256M

MyEclipse s'appelle comme ceci:

"C:\Program Files\MyEclipse 6.0\eclipse\eclipse.exe" -vm "C:\Program Files\MyEclipse 6.0\jre\bin\javaw.exe"  -vmargs -Xms1448M -Xmx1448M

modifier les paramètres de vm à partir de ceci:

"C:\Program Files\MyEclipse 6.0\eclipse\eclipse.exe" -vm "C:\Program Files\MyEclipse 6.0\jre\bin\javaw.exe"  -vmargs -Xms80M -Xmx1024M

n'a eu aucun effet. J'essaie donc de le faire vider le tas dans un fichier, mais en plaçant ces derniers:

-XX:+HeapDumpOnCtrlBreak
-XX:+HeapDumpOnOutOfMemoryError

dans les arguments du programme n'a eu aucun effet. Comment puis-je obtenir quelque chose à travailler avec plus d'analyse de l'utilisation de la mémoire? Par exemple, jstack n'est pas disponible sur les plates-formes Windows. Et l'utilisation de SendSignal n'a aucun effet visible.

une capture d'écran

Était-ce utile?

La solution

Il existe un certain nombre de façons d'obtenir des vidages de tas. En voici quelques-unes que j'ai utilisées:

  1. -XX: + HeapDumpOnOutOfMemoryError devrait vous obtenir un vidage si vous atteignez votre MOO.
  2. Connectez-vous avec VisualVM (gratuit) et utilisez son interface graphique pour forcer le vidage de tas.
  3. Utilisez l'un des nombreux bons profileurs commerciaux (JProfiler, YourKit, ...)
  4. Utilisez jmap (voir ci-dessous) pour forcer un dump depuis un processus en cours

Si vous utilisez Java 6, jmap devrait fonctionner sous Windows. Cela peut être utile si vous souhaitez vider le tas et que vous n'avez pas touché votre MOO. Utilisez le Gestionnaire des tâches Windows pour rechercher le pid de votre application Java et exécutez-le dans une console:

jmap -dump:format=b,file=c:\heap.bin <pid>

Outre VisualVM, le Eclipse Memory Analyzer (également gratuit) peut vous aider à analyser ce que vous mangez. tout l'espace une fois que vous avez le dépotoir.

Autres conseils

-XX: + HeapDumpOnOutOfMemoryError doit être placé dans "" Arguments de la machine virtuelle" " pas " Arguments du programme "

Vous pouvez surveiller les utilisations de la mémoire avec JConsole.

Le jstat aidera également. .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top