web-dev-qa-db-fra.com

Comment puis-je réduire l'utilisation de la mémoire de Eclipse Ganymede?

J'utilise la récente libération de Ganymede d'Eclipse, en particulier la distribution pour Java EE et des développeurs Web. J'ai installé quelques plug-ins (par exemple sous-ligne, ressort, retranchements) et supprimé tous les plugins MyLYN.

Je ne fais rien de particulièrement robuste dans l'éclipse, tels que le démarrage d'un serveur d'applications ou la connexion aux bases de données, mais pour une raison quelconque, après plusieurs heures, je vois que Eclipse utilise près de 500 Mo de mémoire.

Quelqu'un sait-il pourquoi Eclipse utilise tellement de mémoire (fuites?), Et plus important encore, s'il y a quelque chose que je puisse faire pour améliorer cela?

34
Dónal

Je ne sais pas sur Eclipse spécifiquement, j'utilise Intellij qui souffre également de la croissance de la mémoire (que vous utilisiez activement cela ou non!). Quoi qu'il en soit, à Intellij, je ne pouvais pas éliminer le problème, mais j'ai ralenti la croissance de la mémoire en jouant avec les options d'exécution VM. Vous pouvez essayer de les réinitialiser dans Eclipse et voir s'ils font une différence.

Vous pouvez modifier les options VM dans le fichier Eclipse.ini dans votre dossier Eclipse.

J'ai trouvé que (Intellij) Les réglages de collection des ordures avaient le plus d'effet sur la vitesse de la mémoire.

Mes paramètres sont:

-Xms128m
-Xmx512m
-XX:MaxPermSize=120m
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing

(Voir - http://piotrga.wordpress.com/2006/12/12/intellij-andbarbage-collection/ pour une explication des paramètres individuels). Comme vous pouvez le constater, je suis plus préoccupé par d'éviter de longues pauses lors de l'utilisation de la mémoire actuelle, mais vous pouvez l'utiliser comme un début.

34
GKelly

Je ne pense pas que la JVM fasse beaucoup de collecte des ordures à moins que cela ne doive (c'est-à-dire que cela passe à ses limites). Par conséquent, il attrape toute la mémoire qu'il peut obtenir, probablement jusqu'à la limite définie dans l'eclipse.ini (l'argument -xmx, défini sur 512MIB ici).

Vous pouvez obtenir une représentation visuelle de l'état actuel du tas en cochant 'préférences' -> 'Général' -> "Afficher le statut de tas". Il créera une petite jauge dans la barre d'état qui dispose également d'une touche "poubelle" que vous pouvez utiliser pour déclencher une collection manuelle des ordures.

3
Henrik Heimbuerger

Le ganymede Java Les plugins EE sont absolument énormes lorsqu'ils courent en mémoire. De plus, j'ai eu de mauvaises expériences avec Findbugs et sa fiabilité sur une longue session de codage.

Si vous ne pouvez pas vivre sans ces plugins cependant, votre seul recours est de commencer à fermer des projets. Si vous limitez le nombre de projets OUVERT dans votre espace de travail, le compilateur (et les tremblements de recherche) aura moins à craindre et votre utilisation de la mémoire diminuera énormément.

Je séparais habituellement mes espaces de travail par le client, puis gardez uniquement les projets minimaux minimaux ouverts dans chaque espace de travail. Notez que si vous avez des projets particulièrement importants (en particulier ceux avec beaucoup de fichiers contrôlés par WST), cela ne mâchera pas seulement votre mémoire, mais également une pause notable de la réactivité lors de la compilation.

3
Daniel Spiewak

Eclipse est une énorme IDE gonflée. Vous pouvez le minimiser en tournant le bâtiment de projet automatique sous Projet -> Construire automatiquement. Il peut également être aidé en fermant tout projet ouvert que vous ne travaillez pas actuellement.

2
Clark

J'appellerais ça ballonné, mais pas fuir. (Si c'était une fuite, cela grimperait et grimperait jusqu'à ce que quelque chose s'est écrasé.) Comme d'autres l'ont dit, la mémoire est (( pas cher! IT On dirait une décision simple pour moi: Passez un peu plus de mémoire contre plus de la productivité, car vous n'avez pas le budget de mémoire pour exécuter Eclipse @ 500 Mo.

Question rhétorique résumée Quoi de plus précieux:

  1. La productivité gagnée de l'utilisation d'un IDE vous connaissez avec les plug-ins que vous voulez, ou
  2. Passer 50-200 $ sur une certaine mémoire?
2
Stu Thompson

Eclipse par lui-même est assez gonflée et plus vous ajoutez que vous n'ajoutez que la situation n'exacera que la situation. C'est toujours mon IDE préféré, car il n'est certainement pas court sur la fonctionnalité, mais si vous recherchez un poids léger IDE== alors je suggérais de quitter Eclipse; il est assez normal de fuir la moitié Un concert de mémoire si vous laissez courir pendant un certain temps.

2
Magsol

Au lieu de se plaindre de la quantité de mémoire Eclipse prend, allez simplement de l'avant et analysez l'endroit où le problème est. Je pourrais être juste un plugin.

Vérifiez le blog ici: "Analyse de la consommation de mémoire d'éclipse"

Cordial, Markus

1
kohlerm

J'ai eu un problème avec la consommation de mémoire de programmes basée sur Java. J'ai trouvé que cela pouvait être lié à la JVM choisi (dans mon cas, c'était). Essayez de courir Eclipse avec le commutateur -Client.

Dans certains systèmes d'exploitation (la plupart des distributions de Linux, je crois), l'option par défaut est le serveur VM, qui consomme plus de mémoire plus remarquable lors de l'exécution d'applications avec GUI.

Dans mon cas, l'empreinte mémoire initiale est tombée de 300 Mo à 80 Mo.

Désolé pour mon anglais de merde. J'espère que j'ai aidé.

Toutes regards Arkadiusz Jamrocha

1
Arkadiusz Jamrocha

La RAM est relativement peu coûteuse (pas qu'il s'agit d'une excuse pour une mauvaise métamorphose). La mémoire inutilisée est essentiellement une mémoire gaspillée. Si vous frappez des limites et que le IDE est le problème considérez moins multitâche, ajustant votre mémoire requise ou achetez plus. Je n'attinerais pas Eclipse si c'est votre IDE de pain et de beurre.

1
basszero

Je donne habituellement Eclipse 512 Mo de RAM (à l'aide de l'option -xmx de la JVM) et je n'ai aucun problème de mémoire avec Ganymede. J'ai mis à niveau à deux Go de RAM Il y a quelques mois, et je peux vraiment le recommander. Cela fait une énorme différence.

0
Johannes K. Lehnert