Was sind die besten JVM-Einstellungen, die Sie zum Ausführen von Eclipse gefunden haben?
Was sind die besten JVM-Einstellungen, die Sie zum Ausführen von Eclipse gefunden haben?
Antworten:
Es ist wieder soweit: "eclipse.ini take 3" Die Einstellungen schlagen zurück!
Alternativtext http://www.eclipse.org/home/promotions/friends-helios/helios.png
Nach den Einstellungen für Eclipse Ganymede 3.4.x und Eclipse Galileo 3.5.x finden Sie hier einen detaillierten Überblick über eine "optimierte" eclipse.ini- Einstellungsdatei für Eclipse Helios 3.6.x:
(Mit "optimiert" meine ich die Möglichkeit, eine vollwertige Eclipse auf unserer beschissenen Workstation bei der Arbeit auszuführen, ein altes P4 aus dem Jahr 2002 mit 2Go RAM und XPSp3. Aber ich habe dieselben Einstellungen auch unter Windows7 getestet. )
WARNUNG : Verwenden Sie für Nicht-Windows-Plattformen die proprietäre Option Sun -XX:MaxPermSize
anstelle der proprietären Option Eclipse --launcher.XXMaxPermSize
.
Das heißt: Es sei denn, Sie verwenden das neueste jdk6u21 Build 7 . Siehe den Oracle-Abschnitt unten.
-data
../../workspace
-showlocation
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
-vm
C:/Prog/Java/jdk1.6.0_21/jre/bin/server/jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Declipse.p2.unsignedPolicy=allow
-Xms128m
-Xmx384m
-Xss4m
-XX:PermSize=128m
-XX:MaxPermSize=384m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+CMSIncrementalPacing
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
-Dcom.sun.management.jmxremote
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/Prog/Java/eclipse_addons
Hinweis:
Passen Sie das p2.reconciler.dropins.directory
an ein externes Verzeichnis Ihrer Wahl an.
Siehe diese SO-Antwort . Die Idee ist, neue Plugins unabhängig von einer Eclipse-Installation in einem Verzeichnis ablegen zu können.
In den folgenden Abschnitten wird detailliert beschrieben, was in dieser eclipse.ini
Datei enthalten ist.
Andrew Niefer hat mich auf diese Situation aufmerksam gemacht und einen Blog-Beitrag über ein nicht standardmäßiges VM-Argument ( -XX:MaxPermSize
) geschrieben, das dazu führen kann, dass VMs von anderen Anbietern überhaupt nicht gestartet werden.
Die Eclipse-Version dieser Option ( --launcher.XXMaxPermSize
) funktioniert jedoch nicht mit dem neuen JDK (6u21, es sei denn, Sie verwenden 6u21 Build 7, siehe unten).
Das FinaleDie Lösung befindet sich im Eclipse-Wiki und nur für Helios unter Windows mit 6u21 vor Build 7 :
(eclipse_home) /plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503
Das ist es. Hier gibt es keine Einstellungen zum Optimieren (auch hier nur für Helios unter Windows mit einem 6u21 Pre Build 7 ).
Für Nicht-Windows-Plattformen müssen Sie zur proprietären Sun-Option zurückkehren -XX:MaxPermSize
.
Das Problem basiert auf einer Regression: Die JVM-Identifizierung schlägt aufgrund der Umbenennung von Oracle in java.exe fehl und hat den Fehler 319514 in Eclipse ausgelöst .
Andrew hat sich um Bug 320005 gekümmert - [Launcher] --launcher.XXMaxPermSize: isSunVM
sollte für Oracle true zurückgeben , dies gilt jedoch nur für Helios 3.6.1.
Francis Upton , ein weiterer Eclipse - Committer, reflektiert über die gesamte Situation .
Update u21b7, 27. Juli :
Oracle hat die Änderung für die nächste Java 6-Version rückgängig gemacht und wird sie erst mit JDK 7 erneut implementieren .
Wenn Sie jdk6u21 Build 7 verwenden , können Sie --launcher.XXMaxPermSize
anstelle von -XX:MaxPermSize
(Nicht-Standard-Option) auf die Option (Eclipse) zurückgreifen .
Die automatische Erkennung im C-Launcher-Shimeclipse.exe
sucht weiterhin nach der Sun Microsystems
Zeichenfolge " ", aber mit 6u21b7 funktioniert sie jetzt wieder.
Im Moment behalte ich die -XX:MaxPermSize
Version bei (da ich keine Ahnung habe, wann jeder Eclipse das richtige JDK starten wird ).
Im Gegensatz zu den vorherigen Einstellungen ist der genaue Pfad für diese Module nicht mehr festgelegt, was praktisch ist, da er zwischen verschiedenen Eclipse 3.6.x-Versionen variieren kann:
org.eclipse.equinox.launcher
Bundle mit der höchsten Version.plugins
Verzeichnis nach dem entsprechenden org.eclipse.equinox.launcher.[platform]
Fragment mit der höchsten Version und verwendet die darin genannte gemeinsam genutzte Bibliothek eclipse_*
.Das JDK6 ist jetzt explizit erforderlich, um Eclipse zu starten:
-Dosgi.requiredJavaVersion = 1.6
Diese SO-Frage zeigt eine positive Inzidenz für die Entwicklung unter Mac OS.
Die folgenden Optionen sind Teil einiger experimenteller Optionen der Sun JVM.
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
In diesem Blogbeitrag wurde berichtet, dass sie Eclipse möglicherweise beschleunigen.
Alle JVM-Optionen finden Sie hier und auch auf der offiziellen Java Hotspot-Optionsseite .
Hinweis: Die detaillierte Liste der Optionsberichte , die UseFastAccessorMethods
möglicherweise standardmäßig aktiv sind.
Siehe auch "Aktualisieren Sie Ihre JVM" :
Zur Erinnerung, G1 ist der neue Garbage Collector in Vorbereitung auf das JDK 7, der jedoch bereits in der Version 6 von u17 verwendet wird.
Lesen Sie den Blog-Beitrag von Andrew Niefer über diese neue Option:
--launcher.defaultAction
openFile
Dies teilt dem Launcher mit, dass, wenn es mit einer Befehlszeile aufgerufen wird, die nur Argumente enthält, die nicht mit "
-
" beginnen, diese Argumente so behandelt werden sollten, als ob sie "--launcher.openFile
" folgen würden .
eclipse myFile.txt
Dies ist die Art von Befehlszeile, die der Launcher unter Windows erhält, wenn Sie auf eine mit Eclipse verknüpfte Datei doppelklicken oder Dateien auswählen und "
Open With
" oder "Send To
" Eclipse auswählen .Relative Pfade werden erstens für das aktuelle Arbeitsverzeichnis und zweitens für das Eclipse-Programmverzeichnis aufgelöst.
Siehe Fehler 301033 als Referenz. Ursprünglich Fehler 4922 (Oktober 2001, 9 Jahre später behoben).
Wenn Sie dieses Dialogfeld während der Installation Ihrer vielen Plugins satt haben:
, füge hinzu eclipse.ini
:
-Declipse.p2.unsignedPolicy=allow
Siehe diesen Blog-Beitrag von Chris Aniszczy und den Fehlerbericht 235526 .
Ich möchte sagen, dass die Sicherheitsforschung die Tatsache unterstützt, dass weniger Eingabeaufforderungen besser sind.
Die Leute ignorieren Dinge, die im Fluss von etwas auftauchen, das sie erledigen möchten.Für 3.6 sollten wir keine Warnungen in der Mitte des Flusses anzeigen - egal wie stark wir vereinfachen, die Leute werden sie einfach ignorieren.
Stattdessen sollten wir alle die Probleme sammeln, haben nicht dieses Bündel mit Problemen installieren, und stattdessen bringen die Benutzer zurück zu einem Punkt im Workflow , wo sie fixup können - Add Vertrauen, configure Sicherheitspolitik lockerer usw. Das nennt man ‚sicher Inszenierung ' .
---------- http://www.eclipse.org/home/categories/images/wiki.gif Alternativtext http://www.eclipse.org/home/categories/images/wiki.gif Alternativtext http://www.eclipse.org/home/categories/images/wiki.gif
Diese Optionen sind nicht direkt eclipse.ini
oben aufgeführt, können jedoch bei Bedarf nützlich sein.
Wenn Eclipse gestartet wird, liest es seine Keystore-Datei (in der Passwörter aufbewahrt werden), eine Datei, in der sich Eclipse befindet user.home
.
Wenn user.home
sich Eclipse aus irgendeinem Grund nicht ordnungsgemäß in einen vollständigen Pfad auflöst, wird Eclipse nicht gestartet.
Ursprünglich in dieser SO-Frage aufgeworfen , müssen Sie die Keystore-Datei in einem expliziten Pfad neu definieren (keine user.home mehr, die beim Start aufgelöst werden muss).
Fügen Sie hinzu eclipse.ini
:
-eclipse.keyring
C:\eclipse\keyring.txt
Dies wurde durch Fehler 300577 verfolgt , es wurde in dieser anderen SO-Frage gelöst .
Warten Sie, es gibt mehr als eine Einstellungsdatei in Eclipse.
Wenn Sie Ihrer eclipse.ini
Option hinzufügen :
-debug
Wenn Sie den Debug-Modus aktivieren, sucht Eclipse nach einer anderen Einstellungsdatei: einer .options
Datei, in der Sie einige OSGI-Optionen angeben können.
Und das ist großartig, wenn Sie neue Plugins über den Dropins-Ordner hinzufügen.
Fügen Sie in Ihrer .options-Datei die folgenden Einstellungen hinzu, wie in diesem Blog-Beitrag " Dropins-Diagnose " beschrieben :
org.eclipse.equinox.p2.core/debug=true
org.eclipse.equinox.p2.core/reconciler=true
P2 informiert Sie darüber, welche Bundles im
dropins/
Ordner gefunden wurden, welche Anforderung generiert wurde und wie der Installationsplan lautet. Vielleicht ist es keine detaillierte Erklärung dessen, was tatsächlich passiert ist und was schief gelaufen ist, aber es sollte Ihnen aussagekräftige Informationen darüber geben, wo Sie anfangen sollen:
- War dein Bündel im Plan?
- War es ein Installationsproblem (P2-Fehler)
- oder ist es einfach nicht optimal, Ihre Funktion aufzunehmen?
Das kommt von Bug 264924 - [Reconciler] Keine Diagnose von Dropins-Problemen , was schließlich das folgende Problem löst:
Unzip eclipse-SDK-3.5M5-win32.zip to ..../eclipse
Unzip mdt-ocl-SDK-1.3.0M5.zip to ..../eclipse/dropins/mdt-ocl-SDK-1.3.0M5
Dies ist eine problematische Konfiguration, da OCL von der fehlenden EMF abhängt.
3.5M5 bietet keine Diagnose für dieses Problem.Starten Sie Eclipse.
Keine offensichtlichen Probleme. Nichts im Fehlerprotokoll.
Help / About / Plugin
Details zeigtorg.eclipse.ocl.doc
, aber nichtorg.eclipse.ocl
.Help / About / Configuration
Details werden nicht (diagnostisch) erwähntorg.eclipse.ocl
.Help / Installation / Information Installed Software
hat keine Erwähnung vonorg.eclipse.ocl
.Wo sind die schönen Fehlermarkierungen?
Siehe diesen Blog-Beitrag :
- In Galileo (auch bekannt als Eclipse 3.5) begann JDT, den Manifest-Klassenpfad in Bibliotheken aufzulösen, die dem Erstellungspfad des Projekts hinzugefügt wurden. Dies funktionierte unabhängig davon, ob die Bibliothek direkt oder über einen Klassenpfadcontainer zum Erstellungspfad des Projekts hinzugefügt wurde, z. B. die von JDT bereitgestellte oder von einem Drittanbieter implementierte Benutzerbibliotheksfunktion.
- In Helios wurde dieses Verhalten geändert, um Klassenpfadcontainer von der Auflösung des Manifestklassenpfads auszuschließen.
Das bedeutet, dass einige Ihrer Projekte möglicherweise nicht mehr in Helios kompiliert werden können.
Wenn Sie zum Galileo-Verhalten zurückkehren möchten, fügen Sie Folgendes hinzu:
-DresolveReferencedLibrariesForContainers=true
Siehe Fehler 305037 , Fehler 313965 und Fehler 313890 für Referenzen.
Diese SO-Frage erwähnt eine mögliche Lösung, wenn nicht auf Plugin-Update-Sites zugegriffen wird:
-Djava.net.preferIPv4Stack=true
Erwähnt hier nur für den Fall, dass es bei Ihrer Konfiguration helfen könnte.
Dieser Artikel berichtet:
Die schnellsten Optionen, die ich bisher für meinen Bench-Test mit der 1,7 x 64 JVM n Windows gefunden habe, sind:
-Xincgc
-XX:-DontCompileHugeMethods
-XX:MaxInlineSize=1024
-XX:FreqInlineSize=1024
Aber ich arbeite immer noch daran ...
-XX:CompileThreshold=5
Verursacht für mich SCHRECKLICHE Verlangsamungen. Allein durch das Entfernen dieser Option wurde meine Eclipse-Startzeit von> 1 Minute auf 17 Sekunden verkürzt !! Ganz zu schweigen davon, wie schrecklich langsam die IDE im Allgemeinen war. Siehe diesen Link
-XX:CompileThreshold=5
ist ein sehr niedriger Wert (Standard = 10000). Dieser Wert gibt die Anzahl der Methodenaufrufe / -zweige vor dem Kompilieren an. Ein zu niedriger Wert führt dazu, dass Ihr CodeCache vorzeitig voll wird und die Konsole möglicherweise Folgendes meldet: CodeCache is full. Compiler has been disabled
Sobald der Compiler deaktiviert ist, werden Sie eine Langsamkeit in der App bemerken. Es gibt zwei Möglichkeiten, dies zu beheben: 1. Verwenden Sie -XX:CompileThreshold=1000
(Feinabstimmung dieser Zahl) oder 2. Versuchen Sie, die Größe des Code-Cache zu erhöhen, indem Sie -XX:ReservedCodeCacheSize=64m
(doppelt so
Derzeit (November 2009) teste ich mit jdk6 Update 17 die folgenden Konfigurationsoptionen (mit Galileo - Eclipse 3.5.x, siehe unten für 3.4 oder höher für Helios 3.6.x ):
( Passen Sie natürlich die relativen Pfade an in dieser eclipse.ini zu den richtigen Pfaden für Ihr Setup vorhanden)
Hinweis: Für eclipse3.5 ersetzen startup
und launcher.library
Zeilen durch:
-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
-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
Siehe auch meine ursprüngliche Antwort oben für weitere Informationen.
org.eclipse.equinox.p2.reconciler.dropins.directory
Option.Es gab einen Fehler mit ignorierten Haltepunkten, die tatsächlich mit dem JDK zusammenhängen.
Verwenden Sie JDK6u16 oder neuer zum Starten von Eclipse (Sie können dann so viele JDKs definieren, die Sie in Eclipse kompilieren möchten : Nicht weil Sie eine Eclipse mit JDK6 starten, müssen Sie mit demselben JDK kompilieren).
Beachten Sie die Verwendung von:
--launcher.XXMaxPermSize
384m
-vmargs
-XX:MaxPermSize=128m
Wie im Eclipse-Wiki dokumentiert ,
Eclipse 3.3 unterstützt ein neues Argument für den Launcher :
--launcher.XXMaxPermSize
.
Wenn es sich bei der verwendeten VM um eine Sun-VM handelt und noch kein-XX:MaxPermSize=
VM-Argument vorhanden ist, wird der Launcher automatisch-XX:MaxPermSize=256m
zur Liste der verwendeten VM-Argumente hinzugefügt .
Der 3.3 Launcher kann nur Sun VMs unter Windows identifizieren.
Wie in diesem Eintrag beschrieben :
Nicht alle vms akzeptieren das
-XX:MaxPermSize
Argument, weshalb es auf diese Weise übergeben wird. Es kann (oder kann nicht) Probleme bei der Identifizierung von Sonnen-VMS geben.
Hinweis: Eclipse 3.3.1 weist einen Fehler auf, bei dem der Launcher eine Sun-VM nicht erkennen kann und daher nicht die richtige PermGen-Größe verwendet. Es scheint, dass dies auch unter Mac OS X für 3.3.0 ein bekannter Fehler war .
Wenn Sie eine dieser Plattformkombinationen verwenden, fügen Sie das-XX
Flageclipse.ini
wie oben beschrieben hinzu.Anmerkungen:
- Die
384m
Zeile " " wird in den=384m
Teil " " des VM-Arguments übersetzt. Wenn bei der VM bei "m
" zwischen Groß- und Kleinschreibung unterschieden wird , gilt dies auch für dieses Argument.- Das
--launcher.
Präfix " " gibt an, dass das Argument vom Launcher selbst verwendet wird und zu launcher-spezifischen Argumenten hinzugefügt wurde, um Namenskollisionen mit Anwendungsargumenten zu vermeiden. (Andere Beispiele sind--launcher.library
,--launcher.suppressErrors
)Der
-vmargs -XX:MaxPermSize=384m
Teil ist das Argument, das direkt an die VM übergeben wird, wobei der Launcher vollständig umgangen wird und keine Überprüfung des VM-Herstellers verwendet wird.
Neuere Einstellungen finden Sie oben unter Eclipse Galileo 3.5-Einstellungen .
Die beste JVM-Einstellung enthält meiner Meinung nach immer das neueste JDK, das Sie finden können (also vorerst jdk1.6.0_b07 bis b16, außer b14 und b15 ).
Selbst mit diesen ziemlich niedrigen Speichereinstellungen kann ich große Java-Projekte (zusammen mit einem Webserver) auf meinem alten (2002) Desktop mit 2Go RAM ausführen.
-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
Siehe GKelly der SO Antwort und Piotr Gabryanczyk Blog - Eintrag , um weitere Informationen über die neuen Möglichkeiten.
Sie können auch Folgendes in Betracht ziehen:
C:\[jdk1.6.0_0x path]\bin\jconsole.exe
Wie bereits in einer früheren Frage zum Speicherverbrauch erwähnt .
Einstellungen für Sun / Oracle Java- Version "1.6.0_31" und Eclipse 3.7 unter 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
Beachten Sie, dass hierfür nur 200 MB für den Heap und 150 MB für den Nicht-Heap verwendet werden. Wenn Sie große Plugins verwenden, möchten Sie möglicherweise die Grenzwerte "-Xmx200m" und "-XX: MaxPermSize = 150m" erhöhen.
Das primäre Optimierungsziel für diese Flags bestand darin, die Latenz in allen Fällen zu minimieren und als sekundäres Optimierungsziel die Speichernutzung zu minimieren.
-showlocation
Damit Eclipse zweimal ausgeführt wird und Sie wissen, mit welchem Arbeitsbereich Sie es zu tun haben
Eclipse 3.6 fügt eine Einstellungsoption hinzu, um anzugeben, was angezeigt werden soll, was Workspace name (shown in window title)
viel besser funktioniert als -showlocation
aus drei Gründen:
Wenn Sie mit jdk6 Update 14 arbeiten, würde ich empfehlen, den G1-Garbage Collector zu verwenden, der die Leistung zu verbessern scheint.
Entfernen Sie dazu die folgenden Einstellungen:
-XX: + UseConcMarkSweepGC
-XX: + CMSIncrementalMode
-XX: + CMSIncrementalPacing
und ersetzen Sie sie durch diese:
-XX: + UnlockExperimentalVMOptions
-XX: + UseG1GC
Wenn Sie Linux + Sun JDK / JRE 32 Bit verwenden , ändern Sie "-vm" in:
-vm
[your_jdk_folder]/jre/lib/i386/client/libjvm.so
Wenn Sie Linux + Sun JDK / JRE 64 Bit verwenden , ändern Sie "-vm" in:
-vm
[your_jdk_folder]/jre/lib/amd64/server/libjvm.so
Das funktioniert gut für mich unter Ubuntu 8.10 und 9.04
Sie können auch versuchen, mit JRockit zu laufen . Es ist eine für Server optimierte JVM, aber viele lang laufende Clientanwendungen wie IDEs laufen sehr gut auf JRockit. Eclipse ist keine Ausnahme. JRockit hat keinen Perm-Space, Sie müssen ihn also nicht konfigurieren.
Es ist möglich, ein Pausenzeitziel (ms) festzulegen, um zu vermeiden, dass lange gc-Pausen die Benutzeroberfläche blockieren.
-showsplash
org.eclipse.platform
-vm
C:\jrmc-3.1.2-1.6.0\bin\javaw.exe
-vmargs
-XgcPrio:deterministic
-XpauseTarget:20
Normalerweise setze ich -Xmx und -Xms nicht ein und lasse JRockit den Heap nach Bedarf vergrößern. Wenn Sie Ihre Eclipse-Anwendung mit JRockit starten, können Sie mithilfe der JRockit Mission Control-Toolsuite auch Speicherlecks in Ihrer Anwendung überwachen, profilieren und finden. Sie laden die Plugins von dieser Update-Site herunter . Hinweis: Funktioniert nur für Eclipse 3.3 und Eclipse 3.4
Hier ist meine eigene Einstellung für meinen Eclipse, der auf einem i7 2630M 16 GB RAM-Laptop ausgeführt wird. Diese Einstellung wird seit einer Woche ohne einen einzigen Absturz verwendet, und Eclipse 3.7 läuft reibungslos.
-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms1024m
-Xmx4096m
-XX:MaxPermSize=256m
Berechnungen: Für Win 7 x64
-startup
../../../plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx_1.1.100.v20110502
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Xms128m
-Xmx512m
-XX:MaxPermSize=256m
-Xdock:icon=../Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-Dcom.sun.management.jmxremote
-Declipse.p2.unsignedPolicy=allow
Und diese Einstellung hat für mich wie ein Zauber gewirkt. Ich verwende OS X10.6, Eclipse 3.7 Indigo, JDK1.6.0_24
Meine eigenen Einstellungen (Java 1.7, ändern für 1.6):
-vm
C:/Program Files (x86)/Java/jdk1.7.0/bin
-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20100628
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-server
-Dosgi.requiredJavaVersion=1.7
-Xmn100m
-Xss1m
-XgcPrio:deterministic
-XpauseTarget:20
-XX:PermSize=400M
-XX:MaxPermSize=500M
-XX:CompileThreshold=10
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UnlockExperimentalVMOptions
-XX:+DoEscapeAnalysis
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
-XX:+AggressiveOpts
-Xms512m
-Xmx512m
Wenn Sie mich mögen und Probleme mit der aktuellen Oracle-Version 1.6 hatten, möchten Sie möglicherweise Ihr JDK aktualisieren oder festlegen
-XX: MaxPermSize. Weitere Informationen finden Sie hier: http://java.dzone.com/articles/latest-java-update-fixes
XX: + UseParallelGC, das ist die großartigste Option aller Zeiten !!!
-vm
C: \ Programme \ Java \ jdk1.6.0_07 \ jre \ bin \ client \ jvm.dll
Geben Sie an, welche Java-Version Sie verwenden, und verwenden Sie die DLL, anstatt einen Java-Prozess zu starten
eclipse.ini
Einstellungen für Helios 3.6 sind hier (unten in einer neuen Antwort): stackoverflow.com/questions/142357/…