Pourquoi IntelliJ 13 IDEA est-il si lent après la mise à niveau de la version 12?


208

Tout en utilisant IntelliJ 13 Ultimate Edition pendant une semaine, cela semble vraiment très lent.

Tout d'abord, l'EDI entier s'arrête pendant une seconde environ de temps en temps. La saisie automatique de l'éditeur Java est vraiment lente par rapport à la version 12.

Je n'ai rien changé par rapport aux paramètres par défaut autre que l'utilisation d'un thème Dracula.

Il semble que ce ne soit pas mon problème. Beaucoup de gens ont suggéré de définir une taille de tas supérieure à celle par défaut ou de vider le cache, mais je n'ai pas vérifié ou testé ces suggestions. Dois-je modifier certains paramètres pour améliorer les performances de la nouvelle version?


4
si vous continuez à rencontrer des problèmes de performances reproductibles, veuillez les signaler comme décrit ici: intellij-support.jetbrains.com/entries/… Merci d'avance!
Yann Cébron

1
Maintenant que j'y pense, la taille du tas pourrait avoir été le problème. Cependant, le fait qu'IntelliJ 12 avec les paramètres par défaut fonctionne correctement reste. Je n'ai pas utilisé IntelliJ 13 depuis un bon moment, je vais donc devoir vérifier cela plus tard.
Jee Seok Yoon

1
Peut-être lié, peut-être pas: au moins une fois, lorsque j'ai vu IntelliJ fonctionner particulièrement lentement, j'ai remarqué qu'il coïncidait avec des E / S extrêmement élevées. L'effacement de son cache a résolu le problème. Je soupçonne que quelque chose dans le cache a été corrompu et l'IDE ne s'en sortait pas bien.
Mike Strobel

1
simplement nettoyer le cache et redémarrer a fonctionné pour moi aussi. File -> Invalidates Caches ... in intellij 14
demian

1
Cette question est hors sujet.
tar

Réponses:


252

J'ai eu le même problème avec la lenteur dans IntelliJ 13 après la mise à niveau de 12. Ce qui a fonctionné pour moi a été d'éditer les idées64.vmoptions dans le dossier bin et de définir le tas max à 8 Go (au lieu de 512 Mo) et le Max PermGen à au moins 1 Go (était de 300 Mo) .Exemple ci-dessous:

-Xms128m
-Xmx8192m
-XX:MaxPermSize=1024m

Au redémarrage, c'était beaucoup plus rapide.

Pour IntelliJ 2020 remontant à 2017 sur Mac /Applications/IntelliJ IDEA.app/Contents/bin/idea.vmoptions

Sur un Mac, ce fichier se trouve dans ce chemin:

Pour IntelliJ 14 ou 15 sur Mac /Applications/IntelliJ IDEA 14.app/Contents/bin/idea.vmoptions

Pour IntelliJ 13 sur Mac /Users/yourusername/Library/Preferences/IntelliJIdea13/idea.vmoptions

Le programme de mise à jour d'IntelliJ (depuis 2017) semble annuler cette modification, vous devrez donc peut-être la réappliquer après la mise à jour.

Sur Ubuntu Linux, ce fichier se trouve dans ce chemin par rapport au répertoire d'installation:

idea-IU-135.475/bin/idea64.vmoptions

et pour 2016.2:

 ~/.IdeaIC2016.2/idea64.vmoptions

Sur Windows 10 (édition communautaire illustrée ici), ces fichiers se trouvent dans:

C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.1.3\bin\idea64.exe.vmoptions


19
Merci Jason .. Cela semble avoir fait l'affaire pour moi. L'augmentation du tas, même juste à 2 Go (-Xmx2048m) était suffisante pour voir une augmentation significative des performances.
Carl Karawani

3
J'ai un total de 8 Go de RAM et je passe à -Xms512m -Xmx850m -XX: MaxPermSize = 1024m n'a pas fonctionné pour moi.
coding_idiot

2
Dans ce cas, avez-vous essayé avec -Xmx4096? Vous pouvez également essayer des valeurs comme -Xmx2048 ou -Xmx3192 Comme l'a souligné @CarlKarawani, même une augmentation de tas de 2 Go semble être suffisante pour augmenter les performances.
Jason D

2
Cela a du sens, semble être différent selon la machine aussi.
Jason D

7
MaxPermSizeest ignoré depuis Java 8.
user2418306

46

J'ai remarqué que la désactivation de nombreux plug-ins aide vraiment à accélérer IntelliJ. Par exemple, je ne développe pas d'applications Android. Désactiver les plugins liés au développement Android accélère le temps de chargement et rend le programme beaucoup plus fluide sur ma machine.


3
J'ai supprimé tous les plugins que je n'utilise pas, ou je ne suis pas susceptible d'avoir besoin de sitôt (par exemple, le support de Mecurical, l'internationalisation, etc.). Cela a pris le temps de démarrage de littéralement MINUTES, à environ 10-15 secondes). Les performances générales semblent désormais beaucoup plus rapides. Curieusement, l'empreinte mémoire n'a pas beaucoup changé, dans mon cas, restant aux alentours de 820 Mo.
sean.boyer

4
La désactivation du plugin subversion a fait passer mon processeur de 100% à moins de 2%. Si votre IntelliJ 13 est lent, c'est probablement un plugin, cela devrait être la réponse acceptée.
suppliez le

25

Dans mon cas, l'intégration de GIT semble ralentir énormément l'éditeur avec 13.

Lors de la frappe, même des commentaires, avec l'intégration de GIT activée, après environ 30 caractères, l'interface utilisateur se bloque pendant une seconde environ. Ce n'est généralement pas long, mais très ennuyeux.

J'utilise GIT 1.7.8.0. Fonctionnant sur Windows 7 64 avec un disque SSD et 12 Go de RAM et un Intel I7 avec 8 CPU. J'ai essayé différentes choses, comme la mise à jour des options idea64.exe.vm pour utiliser plus de mémoire, comme -Xmx2400m et -XX: MaxPermSize = 2400m, -XX: ParallelGCThreads = 6, mais cela n'a pas résolu le problème.

Le référentiel git est de 1,3 concerts avec 65 000 fichiers.

J'ai créé un nouveau projet "grails" dans un nouveau dépôt git, et il n'y a aucun problème. J'ai créé un nouveau projet Grails dans le grand référentiel git existant, et intellij est lent. J'ai désactivé l'intégration de git en ouvrant la boîte de dialogue des paramètres du projet et en supprimant la racine git, et le problème disparaît.

J'ai essayé de désactiver toutes les opérations d'arrière-plan GIT via l'interface utilisateur 13, mais cela n'a pas fait de différence. J'ai également essayé les modes intégrés et natifs de GIT, et cela n'a fait aucune différence.

Dans mon cas, la solution semble être de désactiver l'intégration GIT jusqu'à ce que j'en ai besoin, puis de simplement ajouter à nouveau la racine git. Si quelqu'un d'autre peut vérifier le même problème, nous pouvons le signaler comme un problème.


1
Je vous recommande de déclencher un bogue sur le traqueur de bogues officiel de JetBrains et de joindre un instantané du processeur .
LoKi

2
Désactiver l'intégration de git et ideavim a considérablement amélioré les performances pour moi. Merci!
Hari Menon,

J'ai modifié les paramètres de mémoire et désactivé l'intégration de Git. Avant que l'éditeur HTML ne soit terriblement lent sur un projet de taille moyenne, j'ai envisagé de jeter l'ordinateur par la fenêtre mais cela a semblé le réparer à la place :)
Richard G

Désactivé les plugins liés à git et VCS, et je suis en paix maintenant.
Sanjay Verma

Octobre 2017, enregistrement ici. Cela semble toujours être un problème majeur. Je viens de désactiver l'intégration de Git et j'ai vu une augmentation de vitesse énorme.
irrationnel

14

Dans mon cas, une dégradation massive des performances a été causée par IntelliJ utilisant involontairement JDK / JRE 1.8. Cela semble affecter très gravement les performances de rendu et entraîne également des plantages et des blocages inattendus.

Cela rendrait l'IDE inutilisable (latence de 1 à 2 sur les opérations), même pour un petit projet de ~ 3KLOC.

Assurez-vous simplement que vous utilisez JDK / JRE 1.7 lors de l'exécution d'intellij:

JAVA_HOME=/usr/lib/jvm/jdk1.7.0_67 intellij

(ou quel que soit l'équivalent pour votre système d'exploitation)

Vous pouvez vérifier le JRE utilisé pour exécuter intellij sous Aide -> À propos -> JRE.


3
Cela m'a été d'une grande aide sur Ubuntu 14.04
Charney Kaye

2
En revenant à la version 1.7, la version 13.1 fonctionnait beaucoup mieux sur Ubuntu 14.04. Merci!
pingw33n

Les nouvelles versions d'IntelliJ sont déjà fournies avec Java 8: intellij-support.jetbrains.com/hc/en-us/articles/… et les anciennes versions ne sont pas compatibles. Vérifiez également: stackoverflow.com/questions/8382641/…
Christian Vielma

13

Eh bien, je ne peux pas répondre au message d'Ingénieur Dollery ci-dessus parce que je n'ai pas encore 50 représentants ... mais j'ai remarqué la même chose. Un problème a déjà été signalé concernant hg4idea: http://youtrack.jetbrains.com/issue/IDEA-118529 .

Il n'y a pas encore de solution, sauf pour désactiver le plugin hg4idea. Mais si cela s'avère être votre problème, votez pour le bug!

Edit: JetBrains a corrigé le bug dans la build IU-138-815!


Il semble y avoir une solution de contournement fournie ici: youtrack.jetbrains.com/issue/IDEA-118529#comment=27-656874 Crédit: Tavis Elliott
signifie

8

J'avais un problème similaire. Dans ce cas, c'était le plug-in Subversion. (Mac Mavericks, SVN version 1.7.10) Une fois que j'ai désactivé cet IntelliJ est redevenu utilisable.

J'ai obtenu ceci de jstack:

"Change List Updater" daemon prio=2 tid=10df3f000 nid=0x12a421000 runnable [12a41f000]
   java.lang.Thread.State: RUNNABLE
    at java.util.Collections.unmodifiableList(Collections.java:1131)
    at com.intellij.execution.configurations.ParametersList.getList(ParametersList.java:88)
    at com.intellij.execution.configurations.GeneralCommandLine.getCommandLineString(GeneralCommandLine.java:210)
    at com.intellij.execution.configurations.GeneralCommandLine.getCommandLineString(GeneralCommandLine.java:189)
    at org.jetbrains.idea.svn.commandLine.CommandExecutor.createProcessHandler(CommandExecutor.java:186)
    at org.jetbrains.idea.svn.commandLine.CommandExecutor.start(CommandExecutor.java:137)
    - locked <76afcdfb8> (a java.lang.Object)
    at org.jetbrains.idea.svn.commandLine.CommandExecutor.run(CommandExecutor.java:262)
    at org.jetbrains.idea.svn.commandLine.CommandRuntime.runWithAuthenticationAttempt(CommandRuntime.java:62)
    at org.jetbrains.idea.svn.commandLine.CommandUtil.execute(CommandUtil.java:206)
    at org.jetbrains.idea.svn.commandLine.CommandUtil.execute(CommandUtil.java:189)
    at org.jetbrains.idea.svn.commandLine.SvnCommandLineInfoClient.execute(SvnCommandLineInfoClient.java:120)
    at org.jetbrains.idea.svn.commandLine.SvnCommandLineInfoClient.issueCommand(SvnCommandLineInfoClient.java:104)
    at org.jetbrains.idea.svn.commandLine.SvnCommandLineInfoClient.doInfo(SvnCommandLineInfoClient.java:90)
    at org.jetbrains.idea.svn.commandLine.SvnCommandLineInfoClient.doInfo(SvnCommandLineInfoClient.java:232)
    at org.jetbrains.idea.svn.commandLine.SvnCommandLineStatusClient.doStatus(SvnCommandLineStatusClient.java:106)
    at org.jetbrains.idea.svn.SvnRecursiveStatusWalker.go(SvnRecursiveStatusWalker.java:79)
    at org.jetbrains.idea.svn.SvnChangeProvider.getChanges(SvnChangeProvider.java:89)
    at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.a(ChangeListManagerImpl.java:686)
    at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.a(ChangeListManagerImpl.java:596)
    at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.d(ChangeListManagerImpl.java:480)
    at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.access$1100(ChangeListManagerImpl.java:71)
    at com.intellij.openapi.vcs.changes.ChangeListManagerImpl$ActualUpdater.run(ChangeListManagerImpl.java:387)
    at com.intellij.openapi.vcs.changes.UpdateRequestsQueue$MyRunnable.run(UpdateRequestsQueue.java:260)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:695)

autre course:

"Change List Updater" daemon prio=2 tid=124556000 nid=0x129c7a000 runnable [129c78000]
   java.lang.Thread.State: RUNNABLE
    at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
    at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:228)
    at java.io.File.exists(File.java:733)
    at org.apache.xerces.parsers.SecuritySupport$7.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.apache.xerces.parsers.SecuritySupport.getFileExists(Unknown Source)
    at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source)
    at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source)
    at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
    at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.<init>(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(Unknown Source)
    at org.jetbrains.idea.svn.commandLine.SvnCommandLineStatusClient.parseResult(SvnCommandLineStatusClient.java:138)
    at org.jetbrains.idea.svn.commandLine.SvnCommandLineStatusClient.doStatus(SvnCommandLineStatusClient.java:118)
    at org.jetbrains.idea.svn.SvnRecursiveStatusWalker.go(SvnRecursiveStatusWalker.java:79)
    at org.jetbrains.idea.svn.SvnChangeProvider.getChanges(SvnChangeProvider.java:89)
    at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.a(ChangeListManagerImpl.java:686)
    at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.a(ChangeListManagerImpl.java:596)
    at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.d(ChangeListManagerImpl.java:480)
    at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.access$1100(ChangeListManagerImpl.java:71)
    at com.intellij.openapi.vcs.changes.ChangeListManagerImpl$ActualUpdater.run(ChangeListManagerImpl.java:387)
    at com.intellij.openapi.vcs.changes.UpdateRequestsQueue$MyRunnable.run(UpdateRequestsQueue.java:260)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:695)

(OSX 10.9) Cela a réduit mon utilisation du processeur beaucoup plus que la modification des options vm. J'aurais aimé pouvoir voter plusieurs fois.
suppliez le

1
Je vous recommande de déclencher un bogue sur le traqueur de bogues officiel de JetBrains et de joindre un instantané du processeur .
LoKi

6

Meilleure expérience avec les options suivantes (idea64.exe.vmoptions):

    -serveur
    -Xms1g
    -Xmx3g
    -Xss16m
    -XX: NewRatio = 3

    -XX: ReservedCodeCacheSize = 240m
    -XX: + UseCompressedOops
    -XX: SoftRefLRUPolicyMSPerMB = 50

    -XX: ParallelGCThreads = 4
    -XX: + UseConcMarkSweepGC
    -XX: ConcGCThreads = 4

    -XX: + CMSClassUnloadingEnabled
    -XX: + CMSParallelRemarkEnabled
    -XX: CMSInitiatingOccupancyFraction = 65
    -XX: + CMSScavengeBeforeRemark
    -XX: + UseCMSInitiatingOccupancyOnly

    -XX: MaxTenuringThreshold = 1
    -XX: SurvivorRatio = 8
    -XX: + UseCodeCacheFlushing
    -XX: + AggressiveOpts
    -XX: -TraceClassUnloading
    -XX: + AlwaysPreTouch
    -XX: + compilation à plusieurs niveaux

    -Djava.net.preferIPv4Stack = true
    -Dsun.io.useCanonCaches = false
    -Djsse.enableSNIExtension = true
    -ea

5

75s -> 10s démarrage intellij. Tout ce que j'ai fait, c'est passer de l'exe 32 bits par défaut à l'exe 64 bits.


5

Pour moi, le problème était un dossier nodes_modules avec plus de mille fichiers. J'ai dû marquer le répertoire comme exclu.

Consultez également cette liste de problèmes possibles.


4

Je suis sur 13.1, et j'ai trouvé que le paramètre suivant fonctionne à merveille pour moi: Paramètres IDE -> Editeur -> Délai d'autoréparation (ms), que j'ai défini à 1500 (la valeur par défaut est 300).

Sur un grand projet, le compilateur et les inspections démarreraient constamment entre les interactions. Le retard peut peut-être aider à réduire la pression du tas et généralement rendre l'expérience beaucoup plus rapide. Mon processeur est également beaucoup plus cool, ce qui aide probablement.


3

J'ai résolu mes problèmes de performances en passant au mode 32 bits. Il semble être lié au JRE avec lequel IntelliJ fonctionne. Il est livré avec un JRE 1.7 32 bits qui est utilisé lors du démarrage de idea.exe. Si vous démarrez idea64.exe, il utilise un JRE 64 bits installé sur le système. Dans mon cas, c'était un JDK 1.6 (celui que j'utilise pour le développement). Cela a rendu IntelliJ presque inutilisable.

Après avoir installé un JDK 1.7 64 bits approprié, tout allait bien avec le mode 64 bits également.

Consultez la réponse sur le site Web du support IntelliJ .


J'ai eu le même problème sur Mac. C'est beaucoup plus rapide après avoir changé la JVM de 1.6 * à 1.7 * dans info.plist d'IntelliJ.
Lei Zhao

2

Dans mon cas, je développe au sein de Moodle qui crée d'énormes fichiers minifiés JS et CSS. Une fois que j'ai excludedthèses les fichiers minifiés "mis en cache" du projet, InitelliJ s'est à nouveau exécuté normalement.



0

J'utilise 13 depuis la première version bêta et je n'ai aucun problème. C'est peut-être vos paramètres spécifiques. Peut-être que votre projet a grandi au fil du temps et que la mémoire que vous avez donnée à Idea à l'origine n'est plus suffisante pour lui maintenant? Essayez de donner à Idea plus de mémoire pour travailler avec: http://www.jetbrains.com/idea/webhelp/increasing-memory-heap.html (instructions sur la façon de procéder).


1
Non, ce n'est pas ça ... J'ai exactement les mêmes problèmes avec les longues pauses, en particulier pendant les sauvegardes de fichiers, le basculement de l'éditeur vers un autre fichier et l'activation des trames. Cela arrive sur des projets de toutes tailles et les mêmes projets exacts étaient bien avec 12.1.
samkass

1
On dirait que cela peut être soit une récupération de place, des interruptions par le système d'exploitation ou un bogue dans Idea. Je pense que ce dernier, bien que tout à fait possible, est peu probable car j'utilise la dernière version sur un macbook pro assez puissant, avec une demi-douzaine d'autres personnes faisant la même chose, et nous n'avons pas vraiment ces problèmes - même si nous n'avions pas assez de RAM. Nous avons dû mettre à jour nos machines à 16 Go afin de donner au système d'exploitation suffisamment de mémoire disponible pour fonctionner. Nous utilisions toute la mémoire libre pour Idea, une machine virtuelle contenant Oracle et un serveur Jboss.
Ingénieur logiciel

Évidemment, vous devriez peut-être mettre à jour idea64.vmoptions si vous utilisez un système d'exploitation 64 bits et idea.vmoptions si vous utilisez un système d'exploitation 32 bits.
nrobey

0

La version 13 d'IntelliJ est nettement plus lente que la version 12 d'après mon expérience. Il existe plusieurs façons de l'accélérer, comme l'augmentation des options de VM pour intelliJ. Par exemple. J'utilise un projet maven, et pour cela j'ai augmenté les options de runner et d'importateur à 4 Go. Cela a rendu les choses beaucoup plus rapides qu'auparavant.


0

Mon cas particulier (Mac) était que j'avais édité l'info.plist pour utiliser java 1.7 * (pour une raison quelconque), et il fonctionnait comme un chien absolu.

Changé en 1.6 * et installé java 1.6, et c'était rapide.


0

J'étais confronté à des performances lentes avec Intellij 2016.1 (64 bits) et JDK 1.8 (64 bits). Je suis passé à

  • Intellij 64 bits
  • Java 8 64 bits comme chemin JAVA_HOME (requis pour exécuter Intellij 64 bits)
  • Java 8 bits 32 comme JDK à utiliser pour les projets Intellij (Fichier -> Structure du projet | Paramètres du projet -> Projet | SDK du projet).

Grâce à cette combinaison, les performances d'Intellij sont maintenant tout à fait correctes.



0

Augmentez la taille du segment de mémoire pour le compilateur. Par défaut, la valeur est 700m, ce qui est beaucoup trop petit avec un nombre croissant de plugins.

À v2019.1, il se trouvait ici:

Paramètres -> Build, Execution, Deployment -> Compiler -> Build process heap size (Mbytes)

Après avoir mis 4000, il a résolu la plupart de mes problèmes de performances.


0

Mon cas particulier: j'en ai eu plusieurs method breakpointspendant que j'exécutais mon code en mode débogage, ce qui a ralenti mon intelligence.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.