Speedup IntelliJ-Idea

j'utilise intelliJ pour le développement de Scala et j'ai eu 8 Go de nouvelle RAM la semaine dernière, donc j'ai pensé: il est temps de l'utiliser. J'ai vérifié mon gestionnaire des tâches et j'ai trouvé intelliJ en utilisant ~250mb . D'eclipse, je savais que le fait de modifier les options de JVM aidait beaucoup à améliorer la vitesse, donc j'ai cherché sur Google ...

et trouvé celui-ci pour OS X Je n'ai pas pu trouver l'option JVM immédiatement, donc j'ai commencé à modifier Xmx. à 1 Go, j'ai réalisé qu'il ne démarre plus. J'ai vérifié la version java d'intelliJ, j'ai trouvé qu'elle est périmée et 32bit.

donc pour utiliser votre JDK actuel et 64 bits vous devez changer votre lien à partir de:

IntelliJ IDEA Community Edition 10.0.2binidea.exe

à

IntelliJ IDEA Community Edition 10.0.2binidea.BAT

et régler "Start in "

la chauve-souris cherche JDK_HOME et utilise 64bit maintenant.

My current VM Options , qui se trouvent dans

...IntelliJ IDEA Community Edition 10.0.2binidea.exe.vmoptions

sont

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

au lieu de -XX:+UseParallelGC , vous pouvez utiliser -XX:+UseConcMarkSweepGC , qui est

le choix accepté pour les applications bureautiques, mais j'ai changé pour le débit collecteur récemment. parce qu'avec un machine rapide et un tas assez petit, vous avez des pauses rapides, plus de débit et pas de problèmes avec la fragmentation de l' (ijuma. # scala)

Changements:

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

je vais m'en tenir à ces options pour l'instant. J'aimerais vraiment connaître votre expérience à ce sujet.

quelles sont les options qui vous conviennent le mieux? Comment puis-je cacher cette fenêtre cmd tout en exécutant intelliJ à travers le .bat ? :)

au fait, voici un autre lien pour tuning intelliJ . Fondamentalement, il est dit sur p. 20/21 pour désactiver Windows restore et antivirus pour les systèmes dirs.

une autre façon d'accélérer intelliJ est de mettre le dossier système intellij sur ramdrive (merci OlegYch|h).

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

Voir Superuser pour Win 7 64 bits RAM Disque ou celui-ci . 1 GB me semble très bien.

Un autre conseil qu'un ami m'a donné est de exclure les répertoires de projet de votre antivirus (scanner sur l'accès)

il y a des messages similaires concernant tuning Eclipse:

86
demandé sur Community 2011-04-13 19:14:31

11 réponses

cette combinaison fonctionne très bien sur mon Intellij13 course à pied dans Mavericks:

Mise À Jour 18 Juillet 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

je garde ce paramètre mis à jour à https://github.com/adben/config/blob/master/idea64.vmoptions

30
répondu adben 2017-11-10 14:38:10

pour moi passant à ssd-drive amélioration des performances beaucoup (surtout pour les grands projets).

27
répondu Yann Cébron 2011-04-25 15:50:07

concernant:

Comment puis-je cacher cette fenêtre cmd tout en courant intelliJ à travers le .chauve-souris?

utilisez la commande "start" et javaw.exe ensemble, donc, si vous avez:

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

changer pour:

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
répondu Dilum Ranatunga 2011-04-13 18:03:05

la chose la plus utile que vous pouvez faire pour IntelliJ est d'avoir beaucoup de mémoire libre pour la mise en cache de disque . IntelliJ économise beaucoup de son travail de traitement dans les fichiers mis en cache. Cela fonctionne bien si vous avez beaucoup de mémoire libre, mais si votre cache disque est limité, vous verrez des pauses régulières et durables.

je suggérerais -XX:+UseConcMarkSweepGC plutôt que G1 .

je travaille aussi des copies locales de fichiers pour minimiser l'accès aux fichiers retard.

BTW : pour le projet sur lequel je suis, j'ai remarqué la différence entre travailler sur une machine avec 24 Go et une avec 48 Go, même si le tas max est réglé à 2 Go;)

19
répondu Peter Lawrey 2015-01-04 20:55:17

il y a quelque temps, je cherchais les moyens d'accélérer la compilation de mon projet et c'est le résultat. Ce n'est pas pour IntelliJ idée elle-même, mais aidera beaucoup quand (re)construire un grand projet et, je suppose, il fonctionnera avec d'autres IDEs aussi. Aussi, J'ai décrit L'approche Linux, mais je suis sûr que Windows a ses propres implémentations RAM-disque.

la façon la plus facile d'accélérer la compilation est de déplacer la sortie de la compilation sur le disque RAM.

disque RAM le programme d'installation

Ouvrir fstab

$ sudo gedit /etc/fstab

(au lieu de gedit vous pouvez utiliser vi ou ce que vous voulez)

Jeu de mémoire vive (RAM) disque de point de montage

j'utilise des disques RAM à plusieurs endroits dans mon système, et l'un d'eux est /tmp , donc je vais juste mettre ma sortie de compilation là:

tmpfs /var/tmp tmpfs defaults 0 0

dans ce cas, votre taille de système de fichiers ne sera pas limitée, mais c'est ok, Mon /tmp taille en ce moment est de 73MB. Mais si vous craignez que la taille du disque RAM devienne trop grande - vous pouvez limiter sa taille, par exemple:

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

configuration de Projet

dans IntelliJ IDEA, ouvrir la Structure du projet ( Ctrl+Alt+Shift+S par défaut), puis aller au projet - 'sortie du compilateur de projet' et le déplacer au point de montage du disque RAM:

/tmp/projectName/out

(j'ai ajouté le dossier projectName pour le trouver facilement si j'ai besoin d'y arriver ou va travailler avec plusieurs projets en même temps)

ensuite, allez dans Modules, et dans tous vos modules, allez dans chemins et sélectionnez "Herit project compiler output path" ou, si vous voulez utiliser custom compile output path, modifiez "Output path" et "Test output path" comme vous l'avez fait pour projeter la sortie du compilateur avant.

C'est tout!

P. S. quelques chiffres: l'Heure de mon projet actuel de compilation dans différents cas (environ):

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

P. P.S. si vous utilisez le disque SSD, en plus de l'accélération de la compilation, vous réduirez les opérations d'écriture sur votre disque, donc cela aidera aussi votre disque SSD à vivre heureux pour toujours;)

17
répondu uncle Lem 2014-04-02 19:53:56

j'ai fait quelques expériences, et j'ai trouvé que pour diminuer les pauses GC la combinaison suivante fonctionne le mieux: -XX:+UseConcMarkSweepGC-XX:SoftRefLRUPolicyMSPerMB=50.

Je ne ferais pas le tas trop grand, 512 ou même plus petit est OK pour moi. Sinon, quand il sera plein, le GC devra marcher tout cela, ce qui prendra un certain temps.

4
répondu Peter Gromov 2012-06-15 18:53:27

Vous pouvez trouver de bons conseils ici. Par exemple, la vitesse de commutation de L'idée à une autre application et vice versa a été considérablement améliorée après avoir éteint la fonctionnalité "Turn off Synchronize Files".

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

2
répondu OJ278 2012-06-15 10:15:48

Je ne sais pas pourquoi il n'a pas encore été mentionné - vous pouvez activer Power Save mode , qui éteint de nombreuses IJ activités de fond, y compris Files Synchronization . Certains articles disent qu'il est possible de désactiver la synchronisation des fichiers dans les options de structure de projet (comme l'article en réponse par @OJ278), mais je n'ai pas pu trouver cette option dans IJ 14 , mais Power Save mode semble la désactiver.

j'ai une base de code assez grande ( AOSP code source), donc l'activité HD en raison de la synchronisation des fichiers de fond est ennuyeux...

2
répondu Mixaz 2015-04-20 23:05:05

vous pouvez utiliser le plugin intellij's optimizer:

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

avec le plugin vous pouvez:

  • Automatique tune machine virtuelle options
  • vérification de la catégorie des personnes handicapées
  • Nettoyer les caches de système de
  • configurer les outils de construction externes
  • Valider le dernier Oracle JDK
  • Ignorer les construire et de les redéployer
1
répondu iberck 2016-04-26 04:42:36

j'ai utilisé cette combinaison et ça marche très bien dans mon environnement

-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
répondu Yasir Shabbir Choudhary 2017-07-19 07:02:16

La réponse fournie par adben est très utile pour améliorer les performances de ma machine. Bien que je l'ai légèrement dépassé après avoir lu un article de Dzone,

-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

ils ont amélioré la performance des grands projets en utilisant la configuration ci-dessus et fonctionne parfaitement pour nos projets aussi. Enfin, j'ai désactivé tous les plugins que je n'utiliserai pas et cela améliore aussi les choses.

référence: https://dzone.com/articles/the-one-and-only-reason-to-customize-intellij-idea

0
répondu Yoda 2018-09-25 08:40:15