it-swarm.com.de

Speedup IntelliJ-Idea

Ich verwende intelliJ für die Scala-Entwicklung und habe letzte Woche 8 GB von neuem RAM erhalten, also dachte ich: Zeit, es zu verwenden. Ich habe meinen Task-Manager überprüft und mithilfe von ~ 250mb IntelliJ gefunden. Von Eclipse wusste ich, dass das Optimieren von JVM-Optionen wesentlich zur Geschwindigkeitsverbesserung beitrug, also habe ich gegoogelt ...

und fand dieses für OS X Ich konnte die JVM-Option nicht sofort finden, also fing ich an, Xmx. zu optimieren. Bei 1 GB wurde mir klar, dass es nicht mehr startet. Ich habe die Java-Version von intelliJ überprüft und festgestellt, dass sie veraltet und 32-Bit ist.

Um Ihr aktuelles JDK und 64 Bit zu verwenden, müssen Sie Ihren Link auf von ändern:

IntelliJ IDEA Community Edition 10.0.2\bin\idea.exe

zu

IntelliJ IDEA Community Edition 10.0.2\bin\idea.BAT

und "Start in" einstellen

Die Fledermaus sucht nach JDK_HOME und benutzt jetzt 64bit.

Meine aktuellen VM Optionen , die sich in befinden

...\IntelliJ IDEA Community Edition 10.0.2\bin\idea.exe.vmoptions

sind

-Xms512m
-Xmx1024m
-XX:MaxPermSize=512m
-ea
-server
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
-XX:+UnlockExperimentalVMOptions
-XX:+UseParallelGC

Anstelle von -XX:+UseParallelGC können Sie auch -XX:+UseConcMarkSweepGC verwenden

die akzeptierte Wahl für Desktop-Apps, aber ich habe vor kurzem auf den Durchsatzkollektor gewechselt. Denn mit einer schnellen Maschine und einem genügend kleinen Haufen haben Sie schnelle Pausen, mehr Durchsatz und keine Probleme mit der Fragmentierung (ijuma. #scala).

Änderungen:

-XX:+UseConcMarkSweepGC //removed
// removed, because not needed with the lastest JVM.
    -XX:+UnlockExperimentalVMOptions
    -XX:+DoEscapeAnalysis
    -XX:+UseCompressedOops

Ich werde mich vorerst an diese Optionen halten. Ich würde wirklich gerne Ihre Erfahrungen damit wissen.

Welche Optionen eignen sich am besten für Sie? Wie verstecke ich dieses Cmd-Fenster, während ich intelliJ über den .bat starte? :)

Übrigens, hier ist ein weiterer Link zum Einstellen von Intelligenz . Grundsätzlich steht auf S.20/21, um Windows Restore und Antivirus für Systemverzeichnisse zu deaktivieren.

Eine andere Möglichkeit zur Beschleunigung von intelliJ besteht darin, den Ordner intellij system auf ramdrive zu setzen (danke OlegYch | h).

from idea.properties 
idea.system.path=${idea.home}/.IntelliJIdea/system

Siehe Superuser für Win 7 64bit RAM Drive oder this one . 1 GB scheint in Ordnung für mich.

Ein weiterer Hinweis, den mir ein Freund gegeben hat, ist Projektverzeichnisse von Ihrem Virenschutzprogramm ausschließen (beim Zugriff scannen)

Es gibt ähnliche Beiträge zur Optimierung von Eclipse:

90
Stefan K.

Diese Kombination funktioniert gut auf meinem Intellij13, der in Mavericks läuft:

Aktualisiert am 18. Juli 2017:

# custom IntelliJ IDEA VM options

-ea
-server
-Xms2G
-Xmx4096M
-Xss2m
-XX:MaxMetaspaceSize=2G
-XX:ReservedCodeCacheSize=1G
-XX:MetaspaceSize=512m
-XX:+UseConcMarkSweepGC
-XX:+DoEscapeAnalysis
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:+UnlockExperimentalVMOptions
-Djava.net.preferIPv4Stack=true
-Dsun.io.useCanonCaches=false
-XX:LargePageSizeInBytes=256m
-XX:+UseCodeCacheFlushing
-XX:ParallelGCThreads=8
-XX:+DisableExplicitGC
-XX:+ExplicitGCInvokesConcurrent
-XX:+PrintGCDetails
-XX:+PrintFlagsFinal
-XX:+AggressiveOpts
-XX:+CMSClassUnloadingEnabled
-XX:CMSInitiatingOccupancyFraction=60
-XX:+CMSClassUnloadingEnabled
-XX:+CMSParallelRemarkEnabled
-XX:+UseAdaptiveGCBoundary
-XX:+UseSplitVerifier
-XX:CompileThreshold=10000
-XX:+OptimizeStringConcat
-XX:+UseStringCache
-XX:+UseFastAccessorMethods
-XX:+UnlockDiagnosticVMOptions
-XX:+HeapDumpOnOutOfMemoryError
-XX:+UseCompressedOops
-XX:-OmitStackTraceInFastThrow
-Dawt.useSystemAAFontSettings=lcd

-Dsun.Java2d.renderer=Sun.Java2d.marlin.MarlinRenderingEngine

Ich halte diese Einstellung aktualisiert unter https://github.com/adben/config/blob/master/idea64.vmoptions

30
adben

Für mich hat der Umstieg auf SSD-Laufwerke die Leistung erheblich verbessert (besonders bei großen Projekten).

28
Yann Cébron

Bezüglich:

Wie kann ich dieses Cmd-Fenster ausblenden, während ich intelligent durch die .bat-Datei laufe?

Verwenden Sie den Befehl 'Start' und die Datei 'javaw.exe' zusammen. Wenn Sie also:

SET Java_EXE=%IDEA_JDK%\jre\bin\Java.exe
...
"%Java_EXE%" %JVM_ARGS% -cp "%CLASS_PATH%" %IDEA_MAIN_CLASS_NAME% %*

Ändern Sie es in:

SET Java_EXE=%IDEA_JDK%\jre\bin\javaw.exe
...
start "Intellij IDEA" /b "%Java_EXE%" %JVM_ARGS% -cp "%CLASS_PATH%" %IDEA_MAIN_CLASS_NAME% %*
20
Dilum Ranatunga

Das nützlichste für IntelliJ ist, dass Sie viel freien Speicher für das Zwischenspeichern von Festplatten haben . IntelliJ speichert eine Menge seiner Verarbeitungsarbeit in zwischengespeicherten Dateien. Dies funktioniert gut, wenn Sie über ausreichend freien Speicher verfügen. Wenn der Festplatten-Cache jedoch begrenzt ist, werden regelmäßige Pausen angezeigt.

Ich würde -XX:+UseConcMarkSweepGC anstelle von G1 vorschlagen.

Ich arbeite auch mit lokalen Kopien von Dateien, um die Verzögerung des Dateizugriffs zu minimieren.

BTW: Für mein Projekt habe ich den Unterschied zwischen dem Arbeiten auf einer Maschine mit 24 GB und einer mit 48 GB festgestellt, obwohl der maximale Heapspeicher auf 2 GB eingestellt ist;) 

19
Peter Lawrey

Vor einiger Zeit habe ich nach Möglichkeiten gesucht, die Kompilierung meines Projekts zu beschleunigen, und das ist das Ergebnis. Dies ist nicht für IntelliJ IDEA selbst gedacht, wird aber sehr hilfreich sein, wenn (große) Projekte erstellt werden, und ich denke, es funktioniert auch mit anderen IDEs. Ich habe auch den Linux-Ansatz beschrieben, aber ich bin sicher, dass Windows über eigene RAM-Disk-Implementierungen verfügt.

Die einfachste Möglichkeit, die Kompilierung zu beschleunigen, besteht darin, die Kompilierungsausgabe auf die Festplatte RAM zu verschieben.

RAM-Disk-Setup

Fstab öffnen

$ Sudo gedit /etc/fstab

(Anstelle von gedit können Sie vi oder was auch immer Sie möchten verwenden)

Richten Sie den Festplatten-Mount-Punkt RAM ein

Ich verwende RAM -Disketten an mehreren Stellen in meinem System, und eine davon ist /tmp. Ich stelle einfach meine Compile-Ausgabe dort ab:

tmpfs /var/tmp tmpfs defaults 0 0

In diesem Fall ist die Größe Ihres Dateisystems nicht beschränkt, aber es ist in Ordnung, meine /tmp-Größe beträgt jetzt 73 MB. Wenn Sie jedoch Angst haben, dass die Festplattengröße von RAM zu groß wird, können Sie deren Größe begrenzen, z.

tmpfs /var/tmp tmpfs defaults,size=512M 0 0

Projektaufbau

Öffnen Sie in IntelliJ IDEA die Projektstruktur (standardmäßig Ctrl+Alt+Shift+S). Gehen Sie dann zu Projekt - 'Ausgabe des Compiler-Projekts' und verschieben Sie sie in den RAM -Disk-Bereitstellungspunkt:

/tmp/projectName/out

(Ich habe den Ordner projectName hinzugefügt, um ihn leicht finden zu können, wenn ich dorthin komme oder mit mehreren Projekten gleichzeitig arbeiten werde.)

Gehen Sie dann zu Modules. Gehen Sie in allen Ihren Modulen zu Paths und wählen Sie 'Inkompat Output Compile Output Path' aus. Wenn Sie einen benutzerdefinierten Compil-Ausgabepfad verwenden möchten, ändern Sie 'Ausgabepfad' und 'Test-Ausgabepfad' auf die von Ihnen gewünschte Weise Compiler-Ausgabe vorher projizieren.

Das war's Leute!

P.S. Einige Zahlen: Zeitpunkt meiner aktuellen Projektzusammenstellung in verschiedenen Fällen (ca.):

HDD:     80s
SSD:     30s
SSD+RAM: 20s

P.P.S. Wenn Sie eine SSD-Festplatte verwenden, werden neben der Beschleunigung der Kompilierung auch die Schreibvorgänge auf der Festplatte reduziert, sodass Ihre SSD auch danach glücklich bleibt;)

18
uncle Lem

Ich habe ein wenig experimentiert und festgestellt, dass die folgenden Kombinationen zur Verringerung der GC-Pausen am besten funktionieren: -XX: + UseConcMarkSweepGC -XX: SoftRefLRUPolicyMSPerMB = 50.

Ich würde den Haufen auch nicht zu groß machen, 512 oder noch kleiner ist für mich in Ordnung. Andernfalls muss der GC alles durchlaufen, was einige Zeit in Anspruch nimmt.

4
Peter Gromov

Hier finden Sie gute Tipps. Beispielsweise wurde die Geschwindigkeit des Wechsels von IDEA zu einer anderen App und umgekehrt erheblich verbessert, nachdem die Funktion "Synchronize Files deaktivieren" deaktiviert wurde.

http://hamletdarcy.blogspot.com/2008/02/10-tips-to-increase-intellij-idea.html

2
OJ278

Sie sind sich nicht sicher, warum es noch nicht erwähnt wurde. Sie können Power Save mode aktivieren, wodurch vieleIJbackground-Aktivitäten deaktiviert werden, einschließlich Files Synchronization. In einigen Artikeln heißt es, dass es möglich ist, Files Sync in Projektstrukturoptionen zu deaktivieren (wie in dem von @ OJ278 beantworteten Artikel), aber ich konnte diese Option in IJ 14 nicht finden, aber Power Save mode scheint sie zu deaktivieren.

Ich habe eine ziemlich große Codebasis (AOSPsource code), also ist HD-Aktivität aufgrund der Synchronisation der Hintergrunddateien ärgerlich ...

2
Mixaz

Sie können das Optimizer-Plugin von intellij verwenden:

https://zeroturnaround.com/free/optimizer-for-intellij-idea/

Mit dem Plugin können Sie:

  • Automatische Optimierung der Optionen für virtuelle Maschinen
  • Klassenüberprüfung deaktivieren
  • Bereinigen Sie die Systemcaches
  • Konfigurieren Sie externe Build-Tools
  • Bestätigen Sie das neueste Oracle JDK
  • Überspringen Sie das Build und stellen Sie es erneut bereit
1
iberck

Die Antwort von adben ist sehr hilfreich, um die Leistung in meinem Computer zu verbessern. Obwohl ich es etwas überschrieben habe, nachdem ich einen Dzone-Artikel gelesen hatte, 

-server
-Xms2g
-Xmx2g
-XX:NewRatio=3
-Xss16m
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled
-XX:ConcGCThreads=4
-XX:ReservedCodeCacheSize=240m
-XX:+AlwaysPreTouch
-XX:+TieredCompilation
-XX:+UseCompressedOops
-XX:SoftRefLRUPolicyMSPerMB=50
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djsse.enableSNIExtension=false
-ea

Sie haben die Leistung von Großprojekten mit der obigen Konfiguration verbessert und funktionieren auch für unsere Projekte einwandfrei. Schließlich habe ich alle Plugins deaktiviert, die ich nicht benutze, und das verbessert auch die Dinge. 

Referenz: https://dzone.com/articles/the-one-and-only-reason-to-customize-intellij-idea

0
Arefe

Ich habe diese Kombination verwendet und sie funktioniert in meiner Umgebung gut 

-server
-Xms2048m
-Xmx2048m
-XX:NewSize=512m
-XX:MaxNewSize=512m
-XX:PermSize=512m
-XX:MaxPermSize=512m
-XX:+UseParNewGC
-XX:ParallelGCThreads=4
-XX:MaxTenuringThreshold=1
-XX:SurvivorRatio=8
-XX:+UseCodeCacheFlushing
-XX:+UseConcMarkSweepGC
-XX:+AggressiveOpts
-XX:+CMSClassUnloadingEnabled
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-XX:+CMSParallelRemarkEnabled
-XX:CMSInitiatingOccupancyFraction=65
-XX:+CMSScavengeBeforeRemark
-XX:+UseCMSInitiatingOccupancyOnly
-XX:ReservedCodeCacheSize=64m
-XX:-TraceClassUnloading
-ea
-Dsun.io.useCanonCaches=false
0
SergioLeone