1295 votes

Comment pouvez-vous accélérer Eclipse?

Comment pouvez-vous rendre l'expérience avec Eclipse plus rapide ?

Par exemple : Je désactive tous les plugins dont je n'ai pas besoin (Mylyn, Subclipse, …).

Au lieu d'utiliser un plugin pour Mercurial, je configure TortoiseHG en tant qu'outil externe.

41 votes

Installez plus de (4 Go supplémentaires de) RAM. Je suis un peu sérieux. Eclipse fonctionne bien sur un ordinateur Windows 7 de 3 Go. Moins de mémoire n'est pas idéal.

11 votes

Le contrôle de version serait mon dernier choix de plugin à désactiver. J'ai trouvé qu'Eclipse est encore quelque peu peu fiable en ce qui concerne le maintien de l'espace de travail en synchronisation avec le système de fichiers. Je ne vous blâme pas de vouloir de meilleurs outils de contrôle de version que ceux des plugins actuels, mais j'ai déjà été piégé par Eclipse dans ce domaine.

85 votes

Les réponses ci-dessous ont réduit le temps de démarrage de mon Eclipse de 20 secondes à moins de 4.

462voto

VonC Points 414372

Les trois facteurs les plus influents pour la rapidité d'Eclipse sont:

  • Utiliser la dernière version d'Eclipse (2020-06 au 26 juin 2020)
    Notez que le commentaire de David Balažic (juillet 2014) contredit ce critère qui fonctionnait il y a six ans :

Le même espace de travail sur Indigo (3.7.2) SR2 se charge en 4 secondes, sur Kepler SR2 (4.3.2) en 7 secondes et sur Luna (4.4.0) en 10 secondes. Tous sont des packs Java EE. Les versions plus récentes ont plus de plugins intégrés, mais la tendance est évidente. (par "même" espace de travail, je veux dire : les mêmes plugins utilisés en plus, les mêmes projets extraits du contrôle de version).

  • Le lancer avec le dernier JDK (Java 14 à l'heure actuelle, ce qui ne vous empêche pas de compiler dans votre projet Eclipse avec n'importe quel autre JDK que vous voulez : 1.4.2, 1.5, 1.6 plus ancien...)

      -vm jdk1.6.0_10\jre\bin\client\jvm.dll
  • Configurer le eclipse.ini (voir cette question pour un eclipse.ini complet)

      -Xms512m
      -Xmx4096m
      [...]

L'argument Xmx correspond à la quantité de mémoire qu'Eclipse obtiendra (en termes simples). Avec -Xmx4g, il obtient 4 GiB de RAM, etc.


Note:

  1. Référencer le jvm.dll présente des avantages:
  • L'écran de démarrage apparaît plus rapidement.
  • Eclipse.exe dans la liste des processus plutôt que java.exe.
  • Firewalls : Eclipse veut accéder à Internet plutôt que Java.
  • Problèmes de branding de gestion des fenêtres, surtout sur Windows et Mac.

Déc. 2020, Udo confirme dans les commentaires

À partir de la version 4.8 (Photon) et au-delà, il y a eu un gain de vitesse constant après chaque version.
La plate-forme principale a été optimisée à chaque sortie pour se charger plus rapidement, permettre plus de fonctionnalités pour le thème sombre et ajouter plus de fonctionnalités pour les nouvelles versions des outils de développement Java.
En particulier au cours des 3 dernières versions, le temps de démarrage a considérablement été augmenté. Il devrait y avoir une augmentation significative du temps de démarrage avec la dernière version d'Eclipse 2020-12.

Dans mon expérience, il a démarré beaucoup plus rapidement avec chaque nouvelle version.
Mais : Il y a encore des plugins qui ne suivent pas la nouvelle façon d'utiliser l'API Eclipse et qui sont donc encore lents au démarrage.
Depuis le passage à Java 11 comme version de runtime minimale à partir de la version Eclipse 2020-09, au moins le système de base utilise les nouvelles fonctionnalités de la JVM. C'est aux fournisseurs des autres plugins de passer à de nouvelles APIs et d'utiliser la pleine puissance des processeurs modernes (par ex. modèle de programmation concurrente).

Voir aussi

  1. Donner à Eclipse le bon nombre de threads et la quantité de mémoire appropriée : Problème : Eclipse et l'indexeur Eclipse utilisent toutes mes ressources / CPU %

2024: Comme noté par dan1st might be happy again dans les commentaires:

Avec les nouvelles versions de Java, il est également possible d'utiliser CDS qui peut améliorer le démarrage.
Cela peut être fait en ajoutant -XX:+AutoCreateSharedArchive -XX:SharedArchiveFile=classes.jsa (ou similaire) aux arguments JVM.

Vrai : CDS, ou Partage de Données de Classe, est une fonctionnalité dans la Machine Virtuelle Java (JVM) destinée à réduire le temps de démarrage des applications Java et la quantité de mémoire qu'elles consomment. Cela est réalisé en permettant à un ensemble de classes d'être préchargé et partagé entre plusieurs instances de la Machine Virtuelle Java (JVM) s'exécutant sur la même machine. Le concept derrière CDS est de créer une archive partagée de classes qui peut être mappée en mémoire à l'exécution, accélérant ainsi le processus de chargement des classes.

Le CDS a été introduit en Java 5 (J2SE 5.0) de manière basique et a été progressivement amélioré dans les versions Java suivantes.
La fonctionnalité que Dan mentionne, -XX:+AutoCreateSharedArchive, et l'utilisation d'un fichier d'archive partagée spécifié via -XX:SharedArchiveFile=, ont été considérablement améliorés et rendus plus accessibles dans Java 10 et les versions ultérieures.
À partir de Java 12, la capacité de créer automatiquement une archive partagée lors du premier démarrage de l'application (avec -XX:+AutoCreateSharedArchive) simplifie le processus, le rendant plus bénéfique pour les applications sans nécessiter d'intervention manuelle pour créer l'archive de données de classe partagée.

Dans le contexte de l'accélération d'Eclipse ou d'applications Java similaires, CDS aidera à obtenir un démarrage plus rapide, une empreinte mémoire réduite et des performances améliorées.

Votre fichier eclipse.ini serait (avec Java 19 ou ultérieur) :

-vmargs
-XX:+UseG1GC
-XX:+AutoCreateSharedArchive
-XX:SharedArchiveFile=/classes.jsa
-Xmx4096m

Remplacez par un chemin approprié où vous souhaitez que l'archive partagée soit stockée. La JVM créera automatiquement cette archive lors du premier démarrage, puis l'utilisera pour accélérer les démarrages suivants.

De plus, dans le cas où Lombok est installé dans Eclipse, il est nécessaire d'autoriser l'utilisation de CDS avec des agents en ajoutant l'option VM diagnostique -XX:+AllowArchivingWithJavaAgent. Dans ce cas, le eclipse.ini contiendrait quelque chose comme :

-vmargs
-XX:+UseG1GC
-XX:+AutoCreateSharedArchive
-XX:SharedArchiveFile=/classes.jsa
-XX:+UnlockDiagnosticVMOptions
-XX:+AllowArchivingWithJavaAgent
-javaagent:/chemin/vers/le/lombok.jar
-Xmx4096m

9 votes

Quel serait l'équivalent de jvm.dll sur d'autres systèmes d'exploitation?

16 votes

@Dan: De wiki.eclipse.org/…: "jvm.dll sur Windows, libjvm.so sur les plateformes 'nix".

3 votes

@Dan: Ne le confondez pas avec libjava.so : Sur Linux, libjava.so dépend de libjvm.so, mais l'inverse n'est pas vrai : $ readelf -d libjava.so Segment dynamique à l'offset 0x208a8 contient 25 entrées : Tag Type Name/Value 0x00000001 (NEEDED) Bibliothèque partagée : [libjvm.so] […] : Lorsque la bibliothèque contient de telles informations, ld.so chargera automatiquement libjvm.so lorsqu'un processus chargera libjava.so.

273voto

Assem Points 21

Ajoutez -Xverify:none à votre fichier eclipse.ini.

Cela réduira considérablement le temps de démarrage de votre Eclipse (50% dans mon cas, voire plus). Cela indiquera à la VM de ne pas valider tous les fichiers .class qu'elle charge.

Considérez ceci : Ne jamais désactiver la vérification du bytecode dans un système de production (comme indiqué dans les commentaires)

4 votes

Oui, ça fonctionne! Mon RAD se charge beaucoup plus rapidement après avoir ajouté cette option.

1 votes

Cela fait une énorme différence. J'ai passé les 30 dernières minutes à chercher cette option. Je l'ai réglée au travail, mais pas à la maison. :(

3 votes

J'ai ajouté ceci et cela a retourné Erreur survenue lors de l'initialisation de VM Tailles de tas minimum et maximum incompatibles spécifiées

127voto

Colm Ryan Points 598

Allez dans Windows -> Préférences -> Validation et décochez tous les validateurs que vous ne voulez pas ou dont vous n'avez pas besoin.

Pour Eclipse 3.7, utilisez Windows -> Préférences -> Général -> Démarrage et Arrêt.

0 votes

Les exécute-t-on uniquement au démarrage ? J'ai encore plus de problèmes lorsque je lance une construction

88voto

chromakode Points 328

Assurez-vous d'utiliser le Sun JVM pour exécuter Eclipse.

Sous Linux, en particulier Ubuntu, Eclipse est installé par défaut pour utiliser le GCJ open source, qui a des performances nettement inférieures. Utilisez update-alternatives --config java pour passer au Sun JVM et améliorer considérablement la réactivité de l'interface utilisateur dans Eclipse.

5 votes

À présent, vous pouvez installer openjdk-7, qui n'est pas très différent de Sun Java 7.

3 votes

Non, la collecte des déchets est nettement plus lente dans Open vs. Oracle. Ceci est dû à des problèmes de brevet liés aux algorithmes.

23 votes

@MarkLopez Pourriez-vous ajouter un lien vers une source fiable pour cela ?

53voto

Nrj Points 2788

Fermez tous les projets ouverts qui ne sont pas en cours d'utilisation.

Essayez de désactiver le mode de publication automatique pendant le développement.

4 votes

Je viens d'apprendre cette astuce l'autre jour. Fermer ceux qui ne sont pas utilisés (j'en ai probablement une vingtaine à trentaine dans mon espace de travail) a immédiatement fait une différence notable.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X