Comment puis-je réduire L'utilisation de la mémoire D'Eclipse Ganymède?

j'utilise la récente version Ganymède D'Eclipse, en particulier la distro pour Java EE et les développeurs web. J'ai installé quelques plugins supplémentaires (par exemple Sublipse, Spring, FindBugs) et j'ai enlevé tous les plugins Mylyn.

Je ne fais rien de particulièrement lourd au sein D'Eclipse comme Démarrer un serveur d'applications ou se connecter à des bases de données, mais pour une raison quelconque, après plusieurs heures d'utilisation, je vois Qu'Eclipse utilise près de 500 Mo de mémoire.

est-ce que quelqu'un sait pourquoi Eclipse utilise autant de mémoire (leaky?), et plus important encore, si il n'y a rien que je peux faire pour améliorer cela?

33
demandé sur einpoklum 2008-09-18 20:44:53

13 réponses

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

vous pouvez éditer les options VM dans l'eclipse.fichier ini dans votre dossier eclipse.

j'ai trouvé que (dans IntelliJ) les paramètres de ramasseur d'ordures ont eu le plus d'effet sur la vitesse à laquelle la mémoire se développe.

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-and-garbage-collection/ pour une explication des paramètres individuels). Comme vous pouvez le voir, je suis plus soucieux d'éviter les longues pauses pendant l'édition que l'utilisation de la mémoire actuelle, mais vous pourriez utiliser cela comme un début.

32
répondu GKelly 2008-09-19 13:55:15

Je ne pense pas que la JVM fasse beaucoup de collecte des ordures à moins qu'elle ne le doive (c.-à-d. qu'elle atteigne ses limites). Par conséquent, il s'empare de toute la mémoire qu'il peut obtenir, probablement jusqu'à la limite fixée dans l'éclipse.ini (l'argument-Xmx, défini à 512MiB ici).

Vous pouvez obtenir une représentation visuelle de l'actuel tas d'état en cochant "Préférences" - > "Général" - > "Afficher tas". Il va créer une petite jauge dans la barre d'état qui a également un bouton "Corbeille" que vous pouvez utiliser pour déclencher une collecte manuelle des ordures.

3
répondu Henrik Heimbuerger 2008-09-18 17:41:45

juste pour information,

  • vous pouvez ajouter

    - Dcom.soleil.gestion.jmxremote

à votre eclise.fichier ini, lancer eclipse et ensuite surveiller son utilisation de la mémoire via 'jconsole.exe ' trouvé dans votre installation jdk.

C:\[jdk1.6.0_0x path]\bin\jconsole.exe

choisissez 'Connection / New connection / 'eclipse' pour surveiller la mémoire utilisée par eclipse

  • utilisez toujours la dernière jvm pour lancer votre eclipse (cela ne vous empêche pas d'utiliser toute autre jfk pour compiler votre projet dans eclipse)
3
répondu VonC 2008-09-19 11:28:45

les plugins Java EE de Ganymede sont absolument énormes lorsqu'ils fonctionnent en mémoire. En outre, 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, alors votre seul recours est de commencer à fermer des projets. Si vous limitez le nombre de ouvert projets dans votre espace de travail, le compilateur (et FindBugs) aura moins à se soucier et votre utilisation de la mémoire va tomber énormément.

je divise habituellement mes espaces de travail par client et puis garder les projets bare-minimum ouverts dans chaque espace de travail. Notez que si vous avez des projets particulièrement importants (en particulier ceux qui ont beaucoup de fichiers vérifiés par WST), cela va non seulement mastiquer votre mémoire, mais aussi causer une pause notable dans la réactivité lors de la compilation.

3
répondu Daniel Spiewak 2011-10-25 17:08:19

Eclipse par elle-même est assez gonflée, et les plugins plus vous ajoutez ne fait qu'exacerber la situation. C'est toujours mon IDE préféré, car il n'est certainement pas à court de fonctionnalités, mais si vous êtes à la recherche d'un IDE léger, alors je suggère d'abandonner Eclipse; il est assez normal de courir jusqu'à un demi-GIGA de mémoire si vous le laissez fonctionner pendant un certain temps.

2
répondu Magsol 2008-09-18 16:49:48

Eclipse est un IDE assez gonflé. Vous pouvez le minimiser en tournant le bâtiment de projet automatique sous le projet - > construire automatiquement. Il peut également être aidé en fermant tout projet ouvert sur lequel vous ne travaillez pas actuellement.

2
répondu 2008-09-18 16:59:58

je dirais qu'il est gonflé, mais pas fuyant. (S'il fuyait, il grimpait et grimpait jusqu'à ce que quelque chose s'écrase.) Comme d'autres l'ont dit, la mémoire est pas cher! il semble comme une décision simple pour moi: passer un tout petit peu sur plus de mémoire vs. perdre la productivité parce que vous n'avez pas le budget de mémoire pour exécuter Eclipse @ 500MB.

Résumés de la question rhétorique: Ce qui est le plus précieux:

  1. La productivité découlant de l'utilisation d'un IDE, vous savez avec les plugins que vous souhaitez, ou
  2. dépenser 50-200 $pour un souvenir?
2
répondu Stu Thompson 2011-03-15 22:46:41

RAM est relativement bon marché (ce N'est pas une excuse pour une mauvaise gestion de la mémoire). La mémoire inutilisée est essentiellement de la mémoire gaspillée. Si vous frappez des limites et L'IDE est le problème envisager moins multitâche, en ajustant vos répliques de mémoire, ou acheter plus. Je ne briserais pas L'éclipse si c'était ton idée.

1
répondu basszero 2008-09-18 16:55:41

au lieu de geindre sur combien de mémoire éclipse prend, juste aller de l'avant et analyser où le problème est. J'ai peut-être juste un plugin.

consultez le blog ici : "analyse de la consommation de mémoire de eclipse"

en ce qui Concerne, Markus

1
répondu kohlerm 2008-10-20 15:45:55

j'ai eu un problème avec la consommation de mémoire des programmes basés sur java. J'ai trouvé qu'il pourrait être lié à la choisi jvm (dans mon cas). Essayez d'exécuter éclipse -commutateur client.

dans certains systèmes d'exploitation (la plupart des distros linux je crois), l'option par défaut est serveur vm, qui consommera beaucoup plus de mémoire lors de l'exécution des applications avec gui.

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

désolé pour mon anglais merdique. J'espère que j'ai aidé.

Tous Les Regards Arkadiusz Jamrocha

1
répondu Arkadiusz Jamrocha 2011-07-21 11:51:33

Eh bien, vous ne spécifiez pas sur quelle plate-forme cela se produit. La gestion de la mémoire peut varier si vous utilisez Windows XP, Vista, Linux, OS X,...

habituellement, sur mon ordinateur (WinXP avec 1 Go de Ram), L'éclipse prend rarement plus de 200 Mo, depengin de la taille des projets ouverts, les plugins chargés et l'action en cours.

0
répondu gizmo 2008-09-18 16:52:01

je donne habituellement Eclipse 512 MB de RAM (en utilisant l'option-Xmx de la JVM) et je n'ai aucun problème de mémoire avec Ganymède. Je suis passé à deux GO DE RAM il y a quelques mois, et je peux vraiment le recommander. Cela fait une énorme différence.

0
répondu Johannes K. Lehnert 2008-09-18 20:03:26

Eclipse garde généralement beaucoup de méta-données en mémoire pour permettre toutes sortes de gymnastique IDE.

j'ai trouvé que la configuration par défaut D'Eclipse fonctionne bien pour la plupart des buts et cela inclut une limite (soit explicitement ou implicitement donnée par le JVM) à la quantité de mémoire qui peut être consommée, et Eclipse restera à l'intérieur de cela.

Est-il une raison particulière pour laquelle vous êtes préoccupé par l'utilisation de la mémoire?

-1
répondu Thorbjørn Ravn Andersen 2010-03-29 13:08:28