Java 8 Mise à jour 60 Mémoire de tas disponible réduite
J'utilise Windows 7, sur un PC avec 32 Go de RAM, et je viens d'accepter la dernière mise à jour Java 8 (60). Avant la mise à jour, je pouvais traiter des fichiers, dans la fenêtre de commande, qui nécessitaient l'utilisation de plusieurs Go de mémoire. Maintenant, je reçois
java.lang.OutOfMemoryError: Java heap space
Exécuter des applications qui nécessitent beaucoup moins de mémoire que ce que j'utilisais confortablement auparavant.
Quand j'ai exécuté NetBeans, je pouvais définir les projets pour utiliser 1 Go de mémoire en faisant R-click: Propriétés: Exécuter et mettre
-Xms1g
Dans le
VM Options
Fenêtre.
Maintenant, quand je fais ça et essayez d'exécuter le programme, j'obtiens
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Error occurred during initialization of VM
Could not reserve enough space for object heap
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
Je n'obtiens pas cette erreur lorsque j'utilise
-Xms900m
À la place. Ainsi, Java a en quelque sorte réduit la quantité de mémoire de tas que je peux utiliser.
Je suis allé démarrer: Panneau de configuration: Java (32 bits): Java: View
Et mettre
-Xms4g
Sous
Runtime Parameters
Mais je reçois toujours les mêmes erreurs.
1 answers
Sous Windows, la JVM 32 bits a une taille de tas maximale d'environ 2 Go et il existe un moyen de la faire monter jusqu'à 3 Go. Si vous utilisez déjà 32 Go de RAM, votre Windows 7 doit être 64 bits et vous feriez mieux de passer à une JVM 64 bits.
J'ai vu la mémoire disponible changer d'une version Java à l'autre. Ils jouent également avec les tailles de mémoire JVM par défaut d'une version à l'autre. Enfin, la quantité de tas disponible varie avec le nombre de threads en cours d'exécution à l'intérieur de la JVM. Étant donné que la mémoire maximale disponible à TOUTES fins dans 2 Go, plus de threads en cours d'exécution diminue la quantité restante pour le tas. S'ils ont ajouté des threads dans la JVM Java 8, cela pourrait expliquer pourquoi il y a moins de tas disponibles.