Java.lang.OutOfMemoryError: Java heap space
Dumping heap to Java_pid2584.hprof ...
Heap dump file created [106948719 bytes in 4.213 secs]
Exception in thread "main" Java.lang.OutOfMemoryError: Java heap space
at Java.util.Arrays.copyOf(Arrays.Java:2760)
at Java.util.Arrays.copyOf(Arrays.Java:2734)
at Java.util.ArrayList.ensureCapacity(ArrayList.Java:167)
at Java.util.ArrayList.add(ArrayList.Java:351)
at Main.main(Main.Java:15)
Mais quand j'ouvre le tas, Java_pid 2584.hprof via Eclipse Memory Analyzer, mais il y a toujours un message:
An internal error occurred during:
"Parsing heap dump from **\Java_pid6564.hprof'".Java heap space
Le problème est qu’Eclipse Memory Analyzer ne dispose pas d’un espace suffisant pour ouvrir le fichier de vidage de tas.
Vous pouvez résoudre le problème comme suit:
ouvrez le fichier MemoryAnalyzer.ini
changer le -Xmx1024m
par défaut en une taille plus grande
Notez que sous OS X, pour augmenter la mémoire allouée à MAT, vous devez cliquer avec le bouton droit sur Memory Analyzer.app et afficher le contenu du package. Le fichier MemoryAnalyzer.ini se trouve sous/Sommaire/MacOS /.
Solution au même problème pour le plug-in Memory Analyzer dans Eclipse sous MAC OS X El Capitan.
Je faisais face au même problème mais avec le plugin Eclipse et je n’avais aucune application Memory Analyzer dans le dossier Applications. La solution qui a fonctionné pour moi était la suivante:
Sous OS X 11.5 (El Cap), modifier MemoryAnalyzer.app/Contents/MacOS/MemoryAnalyzer.ini
ne fonctionne pas! C'est parce qu'il cherche le MemoryAnalyzer.ini
dans un endroit différent.
Sur mon ordinateur, il cherchait:
MemoryAnalyzer.app/Contents/Eclipse/MemoryAnalyzer.ini
mais le vrai fichier .ini était: MemoryAnalyzer.app/Contents/MacOS/MemoryAnalyzer.ini
.
Pour que vos modifications prennent effet, copiez le fichier .ini
existant dans le nouvel emplacement.
Pour trouver où MemoryAnalyzer recherche le fichier ini, vous pouvez exécuter:
Sudo su
cd ...MemoryAnalyzer.app/Contents/MacOS/
dtruss ./MemoryAnalyzer 2>&1 | grep ini
Si Memory Analyzer est utilisé à partir d'Eclipse, modifiez votre fichier Eclipse.ini pour augmenter l'argument vm à -Xmx1024m ou plus. Cela a fonctionné pour moi . http://wiki.Eclipse.org/index.php/MemoryAnalyzer/FAQ#Out_of_Memory_Error_while_Running_the_Memory_Analyzer
J'ai également essayé toutes les solutions ici, tout en obtenant la même erreur et la raison pour laquelle Eclipse essayait d'ouvrir le fichier .hprof en tant que fichier texte en raison d'une association de type de fichier/éditeur incorrecte ou inconnue.
Solution: Faites un clic droit sur le fichier, sélectionnez Ouvrir avec, puis sélectionnez Autres et sélectionnez Eclipse Memory Analyzer.
Travaillé avec 700 Mo de vidage, et avec 2G dump sur un tas Eclipse d'environ 600 M.
Si vous utilisez Mac, essayez d'exécuter le fichier exécutable dans le "dossier" mat.app avec l'option -data, qui vous permet de spécifier un chemin d'accès en écriture:
cd mat.app/Contents/MacOS
./MemoryAnalyzer -data <writable_path>