Wie kann die Speichernutzung von Eclipse reduziert werden?

81

Die Speichernutzung von Eclipse 3.4 geht durch das Dach bis zu dem Punkt, an dem es zu einem Problem wird.

Ich habe ein einfaches BlackBerry-Projekt geladen und die Nutzung steigt auf fast 400 MB, manchmal sogar höher. Gibt es etwas, das getan werden kann, um es zu beseitigen?

AngryHacker
quelle
7
Wenn ich jetzt auf diese Frage zurückblicke, muss ich sagen, dass ich mich freuen würde, wenn ich meine Eclipse-Speichernutzung auf 400 MB reduzieren könnte. Im Moment habe ich Probleme, es auf 1 GB zu reduzieren (plus weitere 300 MB, wenn Sie eine Kopie von Tomcat hinzufügen, um meine Projekte tatsächlich auszuführen ...).
Jules
5
Ich schreibe diesen Kommentar aus der Zukunft (2018) und Eclipse nimmt 10 GB für mein aktuelles Projekt.
Benjamin Barrois
Ich bin gerade aus dem Jahr 2030 zurückgekommen und Eclipse benötigt 5 Terabyte, bevor ein Projekt geladen wird.
AngryHacker

Antworten:

84

Eclipse 3.4 kann dank des Rechtschreibprüfungs-Plug-Ins viel mehr Speicher als die vorherigen Versionen belegen .

Sie können das Plug-In ausschalten, indem Sie zu Fenster -> Einstellungen -> Allgemein -> Editoren -> Texteditoren -> Rechtschreibung gehen und das Kontrollkästchen "Rechtschreibprüfung aktivieren" deaktivieren.

Natürlich würden Ihnen auch die angebotenen Tipps zur Verwendung größerer Haufengrößen und besserer Müllsammler gut tun.

Vineet Reynolds
quelle
12
Hat bei mir nicht funktioniert. Immer noch bei 900-930MB. Ich meine, wtf könnte es tun.
TheRealChx101
5
Gute Antwort. 1 Plug-In nach unten, ungefähr 50 andere, von denen ich noch nie gehört habe / die ich nie benutzt habe. (Hinweis für sich selbst, starten Sie IntelliJ)
8bitjunkie
10
2016 und immer noch vor diesem Problem. Ich meine, 1 GB meines Ram-Speicherplatzes ist von Eclipse belegt. Das Ausschalten des Rechtschreibprüfungs-Plugins hilft auch nicht.
Glücklicher
12
2017 und meine Eclipse verwendet jetzt 1,7 GB RAM ohne zusätzliche Plugins. Dieser Wahnsinn muss ein Ende haben.
Sturm
17

Durch General -> Show heap statusAktivieren wird dies aktiviert

Eclipse-Heap-Statusleiste

in der unteren Leiste. Auf diese Weise können Sie den Garbage Collector jederzeit manuell ausführen, indem Sie auf den Papierkorb klicken. Es ist keine Lösung, eher eine Problemumgehung, aber es hat dazu beigetragen, meine RAM / CPU-Auslastung massiv zu reduzieren.

maaw
quelle
2
Dies half mir festzustellen, dass die zugewiesenen 4 GB RAM für Eclipse tatsächlich nicht verwendet wurden, obwohl das Betriebssystem zeigte, dass 4 GB verwendet wurden. Ich habe die für Eclipse zugewiesene RAM-Größe reduziert, um RAM für andere Anwendungen freizugeben.
Navigatron
1
Als Sping Tool Suit abgeleitet von Eclipse So funktioniert das auch mit STS
Talib Hussain
9

In Eclipse Luna 4.4.1 wurde versucht, meine Speichernutzung in Eclipse zu reduzieren. Ich habe es geschafft, meine von 600 MB auf 300 MB zu rasieren. Ich habe folgendes gemacht:

  • Deaktivierte die beim Start aktivierten Plugins, die ich nicht verwendet habe. Windows> Einstellungen> Allgemein> Starten und Herunterfahren

  • Geschlossene Projekte, an denen ich damals nicht gearbeitet habe.

Die Hinweise / Tipps finden Sie hier: http://blog.elijaa.org/2010/09/20/tricks-to-speed-up-eclipse-php-helios-pdt-2-2/

Kennzeichen
quelle
8

Während Sie wahrscheinlich an der Konfiguration basteln, verschiedene Plugins usw. entfernen könnten , ist es wahrscheinlich kostengünstiger, mehr Speicher zu kaufen. Wie viel hast du aktuell? Ich würde einen Entwicklercomputer mit weniger als 2 GB Speicher als unter den Spezifikationen liegend betrachten, und ich vermute, dass viele Leute das verdoppeln würden ...

Jon Skeet
quelle
3
Konnte nicht mehr zustimmen. 1 GB RAM kostet nur 20 bis 30 US-Dollar. Wie viel ist deine Zeit wert? Eine Sammlung von Plugins in Eclipse zum Laufen zu bringen, ist harte Arbeit genug, ohne (wohl) unnötig damit herumzuspielen.
Cletus
2
Ich habe maximal 2 GB (es ist ein alter Laptop). Das Problem ist, dass der Laptop nach dem Laden des BlackBerry-Simulators, Visual Studio (Webdienste) und Chrome (um im Web nachzuschlagen) zum Crawlen kommt. Aber Eclipse ist bei weitem der größte Täter. Es war nicht so schlimm mit den Versionen 3.3 oder 3.2.
AngryHacker
2
Stimme überhaupt nicht zu. Entwicklercomputer sollten aus genau diesem Grund eine um mindestens 50% niedrigere Spezifikation als der Computer des vorgesehenen Endbenutzers aufweisen (CPU und RAM).
Finnw
4
@finnw: Was lässt Sie denken, dass die Arbeitslast eines Entwicklercomputers in etwa der Arbeitslast des Benutzers entspricht? Viele Anwendungen benötigen nicht so viele Ressourcen wie eine IDE. Sie sollten Ihre Anwendung auf einem Computer mit niedrigen Spezifikationen testen , aber das bedeutet nicht, dass Sie sie auf einem Computer entwickeln . Tatsächlich gehen Sie anscheinend bereits von einer clientseitigen App aus. Wenn ich eine Web-App für mobile Geräte entwickle, sollte ich sie auch auf einem Mobiltelefon entwickeln?
Jon Skeet
2
@Nate: Das war die direkte Frage, aber sehr oft ist es bei Stack Overflow nützlicher, das Problem als die Frage zu betrachten . Wenn jemand Werte in SQL verkettet und einige Anführungszeichen vergisst, besteht die direkte Antwort auf die Frage darin, die Anführungszeichen hinzuzufügen, aber die Lösung für das Problem ist parametrisiertes SQL. Wenn das OP über 400 MB besorgt ist, scheint mir ein allgemeiner Speichermangel für eine Entwicklermaschine das größere Problem zu sein.
Jon Skeet
7

Moderne Versionen von Eclipse benötigen ziemlich viel RAM, um ihre Sache zu erledigen. Sollte aber trotzdem auf jeder modernen Maschine ziemlich schnell laufen.

Angenommen, Sie haben genügend physischen Speicher (2 GB sind in Ordnung, es sei denn, Sie führen viele andere Prozesse aus oder verwenden RAD). In diesem Artikel zur Speichernutzung von Eclipse finden Sie einige Tipps zum Ändern der Einstellungen. Die beiden häufigsten Schuldigen sind, dass Xmx und / oder MaxPermSize zu niedrig eingestellt sind (Xmx ist standardmäßig 256 MB und MaxPermSize standardmäßig 64 MB).

Sie ändern die Werte, indem Sie Befehlszeilenargumente übergeben oder die Datei eclipse.ini am Installationsort von Eclipse optimieren.

Sie sollten am Ende so etwas haben:

...
-vmargs
-Xms128m
-Xmx1024m 
-XX:MaxPermSize=128m
Reicher Verkäufer
quelle
1
MaxPermSize ist nicht mehr da
Ray Kim
6

Meine Eclipse übernimmt über 800 MB Einwohner und 2 GB virtuelle (ein Teil davon wurde möglicherweise ausgetauscht). Java kann ein Schwein sein, es gibt Java die ganze Zeit schlechte Presse.

Es gibt jedoch etwas, das viele Menschen nicht kennen: den inkrementellen Müllsammler. -Xincgc Der Nebeneffekt ist, dass der Speicher von Zeit zu Zeit an das System zurückgegeben wird. Standardmäßig nimmt und nimmt Java nur und wenn es keinen Speicher mehr benötigt, behält es ihn für sich. Das incgc ist eine andere Strategie, bei der es vernünftiger wird anzunehmen, dass der Speicher ohne Probleme an das System zurückgegeben werden kann. Dies kann jedoch die Leistung beeinträchtigen.

Es gibt viele Einstellungen für die Speicherbereinigung. Sie können auch mehrere Threads für GC verwenden. Der parallele GC macht das. Ich bin mir nicht sicher, ob dieser die Erinnerung zurückgibt, glaube nicht.

Mike
quelle
Und wie kann man die Garbage Collector-Option für Eclipse ändern?
Matthieu
3
Dinge haben sich geändert. Der Standard-GC in Java 8 ist jetzt ein Garbage Collector der Generation, der auch Speicher an das System zurückgibt. Sie wollen sich nicht mehr darüber lustig machen ...
Mike
1
In meinem Fall behält Java 8 gerne mehr als 3 GB bei, wenn die tatsächliche Nutzung weniger als 0,5 GB beträgt. Daher muss ich mich leider darüber lustig machen.
Nsandersen
6

+UseG1GCOption aus eclipse.ini entfernen . Ich habe von hier gelesen , dass es nur für ungefähr 6 GB Heap-Speicher verwendet wird.

Ebru Yener
quelle
3
Ja, das hat bei mir funktioniert. Ich ersetzen -XX:+useG1GCmit -XX:+UseSerialGCund das Speicherproblem verschwunden. Klingt nach einem Fehler in G1GC.
Don Smith
1
Umschalten auf -XX:+UseSerialGCAusschneiden> 300mb. Daumen hoch
Aman
3

Wenn 400 MB RAM ein großes Problem für Sie sind, können Sie eine andere IDE ausprobieren. Eclipse speichert viele Statusinformationen, von denen einige oder die meisten nicht benötigt werden. Das ist eine Designwahl.

Im Moment habe ich das gleiche Projekt sowohl in Eclipse als auch in QtCreator geöffnet: Nach einer sauberen Neuerstellung verwendet Eclipse 156 MB RAM, Qt Creator ist mit 66 MB zufrieden.

György Andrasek
quelle
2

Sie können die 64-Bit-Version von Eclipse mit der 64-Bit-Version von JDK unter Windows 7 ausprobieren. Beide haben einige seltsame Probleme mit dem Framework von Drittanbietern verursacht, mit dem ich arbeiten muss. Das 32-Bit-JRockit (jetzt kostenlos) von Oracle scheint schneller zu sein und etwas besser im Speicher zu sein. Dies sind meine Eclipse.ini-Einstellungen:

Dies ist mein Eclipse Inn

-startup
plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.2.R36x_v20101222
-nosplash
org.eclipse.platform
--launcher.XXPermSize
512m
--launcher.XXMaxPermSize
512m
--launcher.defaultAction
openFile
-vm
C:/Program Files (x86)/Java/jrockit-jdk1.6.0_31-R28.2.3-4.1.0/jre/bin
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Xquickstart
-XX:+AggressiveHeap
-XX:+AggressiveOpts
-XX:+UseParallelOldGC
-XX:ParallelGCThreads=2
-XX:ThreadPriorityPolicy=1
-Xverify:none
-Xms1100m
-Xmx1100m

Ich habe auf das 32-Bit-JRockit-JDK umgestellt, das für Eclipse etwas schneller zu sein scheint. Ich schalte aus und installiere nicht mehr als ich brauche. Für jede einzelne Art der App-Entwicklung (Android, J2EE, nur Spring, ...) habe ich verschiedene Eclipse-Installationen. Festplattenspeicher ist billig. Dann kann ich genau die Plugins haben, die ich für jedes brauche. Ich würde nie wollen, dass alle Android-Tools geladen werden, wenn ich sie nicht benutze. STS ist auch nur für das Spring-Zeug gut und ich habe eines nur für die OpenShift Cloud-Arbeit.

Tim Spann
quelle
Ich bin etwas verwirrt, da Sie zuerst --launcher.XXMaxPermSize 512m und dann --launcher.XXMaxPermSize 256m haben (und ein paar doppelte Zeilen, dh defaultAction und dann Nosplash zusammen mit Showsplash). Verwendet es die erste gefundene Konfiguration?
Jambriz
es sollte nicht den zweiten da drin haben. Ich habe es noch einmal überprüft und habe es nicht in meinem aktuellen. Auch wenn Sie JDK 8 verschiedene Parameter verwenden
Tim Spann