Quels sont les meilleurs paramètres JVM que vous avez trouvés pour exécuter Eclipse ?
Réponses
Trop de publicités?Paramètres Eclipse Galileo 3.5 et 3.5.1
Actuellement (novembre 2009), je teste avec jdk6 mise à jour 17 le jeu de paramètres de configuration suivant (avec Galiléo -- eclipse 3.5.x, voir ci-dessous pour 3.4 ou ci-dessus pour Helios 3.6.x):
(bien entendu, adaptez les chemins relatifs présents dans ce eclipse.ini pour les bons chemins de votre configuration)
Note : pour eclipse3.5, remplacez les lignes startup
et launcher.library
par :
-startup
plugins/org.eclipse.equinox.launcher_1.0.200.v20090520.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
eclipse.ini 3.5.1
-data
../../workspace
-showlocation
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
384m
-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-vm
../../../../program files/Java/jdk1.6.0_17/jre/bin/client/jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx384m
-Xss4m
-XX:PermSize=128m
-XX:MaxPermSize=384m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-Dcom.sun.management.jmxremote
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/jv/eclipse/mydropins
Voir aussi ma réponse originale ci-dessus pour plus d'informations.
Modifications (de juillet 2009)
- fait référence au lanceur et non au framework
- plugins partagés : option
org.eclipse.equinox.p2.reconciler.dropins.directory
. - Galiléo prend en charge les chemins complètement relatifs pour le workspace ou la VM (évitez d'avoir à modifier ceux-ci d'une installation d'éclipse à une autre, si, bien sûr, votre JVM et votre workspace restent les mêmes)
Avant, ces chemins relatifs étaient constamment réécrits en chemins absolus lorsque eclipse se lançait... - Vous pouvez également copier le répertoire JRE d'une installation de Java JDK à l'intérieur de votre répertoire eclipse
Attention
Il y avait un bug avec des points d'arrêt ignorés en réalité liés au JDK.
Utilisez JDK6u16 ou une version plus récente pour lancer eclipse (Vous pouvez alors définir autant de JDK que vous le souhaitez pour compiler à l'intérieur de eclipse : ce n'est pas parce que vous lancez un eclipse avec JDK6 que vous devrez compiler avec ce même JDK).
Maximum
Remarquez l'utilisation de :
--launcher.XXMaxPermSize
384m
-vmargs
-XX:MaxPermSize=128m
Comme documenté dans le Wiki d'Eclipse,
Eclipse 3.3 prend en charge un nouvel argument pour le lanceur :
--launcher.XXMaxPermSize
.
Si la VM utilisée est une VM Sun et qu'il n'y a pas déjà un argument VM-XX:MaxPermSize=
, alors le lanceur ajoutera automatiquement-XX:MaxPermSize=256m
à la liste des arguments VM utilisés.
Le lanceur 3.3 est uniquement capable d'identifier les VM Sun sous Windows.
Comme détaillé dans cette entrée:
Toutes les vms n'acceptent pas l'argument
-XX:MaxPermSize
, c'est pourquoi il est passé de cette manière. Il peut (ou non) exister des problèmes pour identifier les vms Sun.
Remarque : Eclipse 3.3.1 a un bug où le lanceur ne peut pas détecter une VM Sun, et n'utilise donc pas la bonne taille de PermGen. Il semble que cela ait été un bug connu sur Mac OS X pour 3.3.0 également.
Si vous utilisez l'une de ces combinaisons de plateformes, ajoutez le drapeau-XX
au fichiereclipse.ini
comme décrit ci-dessus.Notes :
- la ligne "
384m
" se traduit par la partie "=384m
" de l'argument VM, si la VM est sensible à la casse sur le "m
", alors cet argument l'est aussi.- le préfixe "
--launcher.
", cela spécifie que l'argument est consommé par le lanceur lui-même et a été ajouté aux arguments spécifiques au lanceur pour éviter les collisions de noms avec les arguments d'application. (D'autres exemples sont--launcher.library
,--launcher.suppressErrors
)La partie
-vmargs -XX:MaxPermSize=384m
est l'argument passé directement à la VM, contournant complètement le lanceur et aucune vérification sur le fournisseur de VM n'est utilisée.
Paramètres Eclipse Ganymede 3.4.2
Pour des paramètres plus récents, voir Paramètres Eclipse Galileo 3.5 ci-dessus.
JDK
Le meilleur paramètre de la JVM toujours, à mon avis, inclut le dernier JDK que vous pouvez trouver (donc pour le moment, jdk1.6.0_b07 jusqu'à b16, sauf b14 et b15)
eclipse.ini
Même avec ces paramètres de mémoire assez bas, je peux exécuter de grands projets java (avec un serveur web) sur mon vieux bureau (2002) avec 2Go de RAM.
-showlocation
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256M
-framework
plugins\org.eclipse.osgi_3.4.2.R34x_v20080826-1230.jar
-vm
jdk1.6.0_10\jre\bin\client\jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx384m
-Xss2m
-XX:PermSize=128m
-XX:MaxPermSize=128m
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-XX:CompileThreshold=5
-Dcom.sun.management.jmxremote
Voir réponse SO de GKell et entrée de blog de Piotr Gabryanczyk pour plus de détails sur les nouvelles options.
Surveillance
Vous pouvez également envisager de lancer :
C:\[chemin jdk1.6.0_0x]\bin\jconsole.exe
Comme mentionné dans une question précédente sur la consommation de mémoire.
Paramètres Eclipse Indigo 3.7.2 (linux 64 bits)
Paramètres pour la version Sun/Oracle java "1.6.0_31" et Eclipse 3.7 tournant sur x86-64 Linux:
-nosplash
-vmargs
-Xincgc
-Xss500k
-Dosgi.requiredJavaVersion=1.6
-Xms64m
-Xmx200m
-XX:NewSize=8m
-XX:PermSize=80m
-XX:MaxPermSize=150m
-XX:MaxPermHeapExpansion=10m
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=70
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+UseParNewGC
-XX:+CMSConcurrentMTEnabled
-XX:ConcGCThreads=2
-XX:ParallelGCThreads=2
-XX:+CMSIncrementalPacing
-XX:CMSIncrementalDutyCycleMin=0
-XX:CMSIncrementalDutyCycle=5
-XX:GCTimeRatio=49
-XX:MaxGCPauseMillis=20
-XX:GCPauseIntervalMillis=1000
-XX:+UseCMSCompactAtFullCollection
-XX:+CMSClassUnloadingEnabled
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
-XX:+AggressiveOpts
-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses
À noter que ceci utilise seulement 200 Mo pour le tas et 150 Mo pour le non-tas. Si vous utilisez des plugins volumineux, vous voudrez peut-être augmenter les limites de "-Xmx200m" et "-XX:MaxPermSize=150m".
L'objectif d'optimisation principal pour ces indicateurs a été de minimiser la latence dans tous les cas et comme objectif d'optimisation secondaire minimiser l'utilisation de la mémoire.
- montrer l'emplacement
Pour faciliter l'exécution de Eclipse deux fois et savoir avec quel espace de travail vous travaillez
Eclipse 3.6 ajoute une option de préférences pour spécifier ce qu'il faut afficher pour le Nom de l'espace de travail (affiché dans le titre de la fenêtre)
ce qui fonctionne beaucoup mieux que -showlocation
pour trois raisons :
- Vous n'avez pas besoin de redémarrer Eclipse pour que cela prenne effet.
- Vous pouvez choisir un code court.
- Il apparaît en premier, avant la perspective et le nom de l'application.
- Réponses précédentes
- Plus de réponses