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.

Author: OtagoHarbour, 2015-08-24

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.

 1
Author: schtever, 2015-08-24 18:21:24