web-dev-qa-db-fra.com

Comprendre les paramètres de mémoire pour Eclipse

Je viens d'installer Eclipse 4.2 (Juno) sur Linux 64 bits. J'ai examiné plusieurs threads Eclipse.ini sur Stack Overflow, mais je ne comprends toujours pas la relation entre les différents paramètres de mémoire.

D'une part, il existe des paramètres pour VM et qui se trouvent sous -vmargs (par exemple, -Xms et -Xmx, -XX), tandis que d'autres (par exemple, --launcher.XXMaxPermSize) sont fournis directement à Eclipse.

Quelle est la relation entre ces paramètres? Comment pourrais-je les configurer pour une machine de plus de 8 Go de mémoire? 

Je suis conscient de la longue question de débordement de pile Quels sont les meilleurs paramètres de machine virtuelle Java pour Eclipse?, mais j'aimerais apprendre comment ajuster ces paramètres moi-même.

Pour référence, après l'installation, les paramètres par défaut de Juno sont les suivants:

-startup
plugins/org.Eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.Eclipse.equinox.launcher.gtk.linux.x86_1.1.200.v20120522-1813
-product
org.Eclipse.epp.package.cpp.product
--launcher.defaultAction
openFile
-showsplash
org.Eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Dhelp.lucene.tokenizer=standard
-XX:MaxPermSize=256m
-Xms40m
-Xmx512m
27
Josh

Si vous exécutez Eclipse sur une machine virtuelle Java/Oracle, je ne prendrais pas en compte --launcher.XXMaxPermSize (je le supprime personnellement) et me concentrais sur -XX:MaxPermSize, -Xms et -Xmx.

La raison de --launcher.XXMaxPermSize est que certaines JVM non-Oracle/Sun pourraient s’étouffer avec -XX:MaxPermSize. Le programme de lancement est programmé pour détecter la machine virtuelle Java et fournir conditionnellement -XX:MaxPermSize. Ceci est bien sûr neutralisé par le paramètre explicite -XX:MaxPermSize dans le fichier Eclipse.ini par défaut. Cela ressemble à un bug.

Je ne plaisante jamais avec le réglage -Xms. J'ai mis -Xmx1024m et -XX:MaxPermSize=512m

17

Par souci d'exhaustivité, il convient de noter que la génération permanente (PermGen) a été remplacée par MetaSpace dans Java 8 HotSpot.

Ainsi, si vous utilisez une machine virtuelle Java Oracle avec Java 8 ou une version ultérieure, vous n’avez plus à vous soucier de ces paramètres et vous pouvez les supprimer en toute sécurité.

--launcher.XXMaxPermSize
-XX:MaxPermSize

Depuis lors, le paramètre -XX:MaxPermSize est ignoré par la machine virtuelle Java et génère un avertissement (voir: Suppression de PermGen dans JDK 8 ).

0
Yosh