Perché IntelliJ 13 IDEA è così lento dopo l'aggiornamento dalla versione 12?


208

Durante l'utilizzo di IntelliJ 13 ultimate edition per una settimana, sembra davvero molto lento.

Prima di tutto, l'intero IDE si ferma per circa un secondo ogni tanto. Il completamento automatico dell'editor Java è molto lento rispetto alla versione 12.

Non ho modificato nulla rispetto alle impostazioni predefinite se non l'utilizzo di un tema Dracula.

Sembra che questo non sia un mio problema. Molte persone hanno suggerito di impostare una dimensione dell'heap superiore a quella predefinita o di svuotare la cache, ma non ho verificato o verificato questi suggerimenti. Devo modificare alcune impostazioni per migliorare le prestazioni della nuova versione?


4
se continui a riscontrare problemi di prestazioni riproducibili, segnalali come descritto qui: intellij-support.jetbrains.com/entries/… Grazie in anticipo!
Yann Cébron,

1
Ora che ci penso, la dimensione dell'heap potrebbe essere stato il problema. Tuttavia, il fatto che IntelliJ 12 con le impostazioni predefinite funzioni correttamente rimane ancora. Non utilizzo IntelliJ 13 da un po 'di tempo, quindi dovrò verificarlo più tardi.
Jee Seok Yoon,

1
Forse in relazione, forse no: almeno una volta, quando ho visto IntelliJ correre particolarmente lentamente, ho notato che coincideva con un I / O estremamente elevato. L'eliminazione della cache ha risolto il problema. Ho il sospetto che qualcosa nella cache si sia corrotto e l'IDE non se la cavasse bene.
Mike Strobel,

1
solo ripulire la cache e riavviare ha funzionato anche per me. File -> Invalida le cache ... in intellij 14
demian

1
Questa domanda è fuori tema.
tar

Risposte:


252

Ho avuto lo stesso problema con lentezza in IntelliJ 13 dopo l'aggiornamento da 12. Quello che ha funzionato per me è stato modificare le idee64.vmoptions nella cartella bin e impostare l'heap massimo su 8 GB (era 512 MB) e il Max PermGen su almeno 1 GB (era 300 MB). Esempio sotto:

-Xms128m
-Xmx8192m
-XX:MaxPermSize=1024m

Al riavvio è stato molto più veloce.

Per IntelliJ 2020 che risale al 2017 su Mac /Applications/IntelliJ IDEA.app/Contents/bin/idea.vmoptions

Su un Mac, questo file si trova in questo percorso:

Per IntelliJ 14 o 15 su Mac /Applications/IntelliJ IDEA 14.app/Contents/bin/idea.vmoptions

Per IntelliJ 13 su Mac /Users/yourusername/Library/Preferences/IntelliJIdea13/idea.vmoptions

Il programma di aggiornamento di IntelliJ (dal 2017) sembra ripristinare questa modifica, quindi potrebbe essere necessario applicarla nuovamente dopo l'aggiornamento.

Su Ubuntu Linux, questo file si trova in questo percorso rispetto alla directory di installazione:

idea-IU-135.475/bin/idea64.vmoptions

e per il 2016.2:

 ~/.IdeaIC2016.2/idea64.vmoptions

Su Windows 10 (edizione della community mostrata qui) questi file si trovano in:

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


19
Grazie Jason .. Questo sembra aver fatto il trucco per me. L'aumento dell'heap anche solo a 2 GB (-Xmx2048m) è stato sufficiente per vedere un aumento significativo delle prestazioni.
Carl Karawani,

3
Ho un totale di 8 GB di RAM e sto cambiando in -Xms512m -Xmx850m -XX: MaxPermSize = 1024m non ha funzionato per me.
coding_idiot

2
In tal caso, hai provato con -Xmx4096? Potresti anche voler provare valori come -Xmx2048 o -Xmx3192 Come sottolineato da @CarlKarawani, anche un aumento dell'heap di 2 GB sembra essere sufficiente per migliorare le prestazioni.
Jason D,

2
Ha senso, sembra essere diverso a seconda della macchina.
Jason D,

7
MaxPermSizeviene ignorato da Java 8.
user2418306

46

Ho notato che la disabilitazione di molti plug-in aiuta davvero ad accelerare IntelliJ. Ad esempio, non sto sviluppando applicazioni Android. La disattivazione dei plug-in correlati allo sviluppo di Android velocizza i tempi di caricamento e rende il programma molto più fluido sulla mia macchina.


3
Ho rimosso tutti i plugin che non utilizzo o che probabilmente non mi serviranno presto (ad es. Supporto per Mecurical, internazionalizzazione, ecc.). Ci sono voluti i tempi di avvio da letteralmente MINUTI, a circa 10-15 secondi). Anche la prestazione generale sembra essere molto più scattante. Stranamente, l'impronta della memoria non è cambiata molto, nel mio caso, rimanendo intorno a 820 MB.
sean.boyer,

4
La disabilitazione del plug-in Subversion ha portato la mia CPU dal 100% a meno del 2%. Se IntelliJ 13 è lento, probabilmente è un plug-in, questa dovrebbe essere la risposta accettata.
visita il

25

Nel mio caso, l'integrazione con GIT sembra causare un rallentamento frustrante dell'editor con 13.

Durante la digitazione, anche i commenti, con l'integrazione GIT attivata, dopo circa 30 caratteri, l'interfaccia utente si blocca per circa un secondo. Di solito non è lungo, ma molto fastidioso.

Sto usando GIT 1.7.8.0. In esecuzione su Windows 7 64 con un'unità a stato solido e 12 concerti di ram e Intel I7 con 8 CPU. Ho provato varie cose, come l'aggiornamento di idea64.exe.vmoptions per utilizzare più memoria, come -Xmx2400m e -XX: MaxPermSize = 2400m, -XX: ParallelGCThreads = 6, ma non ha risolto il problema.

Il repository git è di 1.3 concerti con 65.000 file.

Ho creato un nuovo progetto "grails" in un nuovo repository git e non ci sono problemi. Ho creato un nuovo progetto grails nel repository git di grandi dimensioni esistente e intellij è lento. Ho disattivato l'integrazione git aprendo la finestra di dialogo delle impostazioni del progetto ed eliminando la radice git e il problema scompare.

Ho provato a disabilitare tutte le operazioni in background di GIT attraverso l'interfaccia utente 13, ma non ha fatto differenza. Ho anche provato sia la modalità GIT integrata che la modalità nativa e non ha fatto alcuna differenza.

Nel mio caso, la soluzione sembra essere quella di disabilitare l'integrazione di GIT fino a quando non ne ho bisogno e quindi aggiungere nuovamente la radice git. Se qualcun altro può verificare lo stesso problema, potremmo segnalarlo come un problema.


1
Ti consiglio di lanciare un bug sul tracker bug ufficiale di JetBrains e di allegare uno snapshot della CPU .
LoKi

2
Disattivare l'integrazione con git e ideavim ha migliorato significativamente le prestazioni per me. Grazie!
Hari Menon,

Ho modificato le impostazioni della memoria e disabilitato l'integrazione di Git. Prima che l'editor HTML fosse terribilmente lento su un progetto moderatamente grande, ho pensato di buttare il computer fuori dalla finestra, ma questo sembrava ripararlo invece :)
Richard G

Ho disattivato i plugin relativi a git e VCS e ora sono in pace.
Sanjay Verma,

Ottobre 2017 check-in qui. Questo sembra ancora essere un grosso problema. Ho appena disattivato l'integrazione di Git e ho visto un enorme aumento di velocità.
irrazionale

14

Nel mio caso, IntelliJ ha involontariamente ridotto il degrado delle prestazioni utilizzando JDK / JRE 1.8. Ciò sembra influire negativamente sulle prestazioni di rendering e porta anche a crash e deadlock imprevisti.

Ciò renderebbe inutilizzabile l'IDE (latenza di 1-2 secondi sulle operazioni) anche per un piccolo progetto ~ 3KLOC.

Assicurati di utilizzare JDK / JRE 1.7 quando esegui intellij:

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

(o qualunque sia l'equivalente per il tuo sistema operativo)

È possibile controllare il JRE utilizzato per eseguire intellij in Guida -> Informazioni -> JRE.


3
Questo è stato di grande aiuto per me su Ubuntu 14.04
Charney Kaye il

2
Tornando alla 1.7 ha reso le prestazioni 13.1 molto migliori su Ubuntu 14.04. Grazie!
pingw33n,

Le versioni IntelliJ più recenti sono già in bundle con Java 8: intellij-support.jetbrains.com/hc/en-us/articles/… e le versioni precedenti non sono compatibili. Controlla anche: stackoverflow.com/questions/8382641/…
Christian Vielma,

13

Beh, non posso rispondere al post di Engineer Dollery sopra perché non ho ancora 50 rappresentanti ... ma ho notato la stessa cosa. È già stato segnalato un problema relativo a hg4idea: http://youtrack.jetbrains.com/issue/IDEA-118529 .

Non ci sono ancora correzioni se non per disabilitare il plugin hg4idea. Ma se questo risulta essere il tuo problema, vota per il bug!

Modifica: JetBrains ha corretto l'errore nella build IU-138-815!


Sembra che ci sia una soluzione alternativa fornita qui: youtrack.jetbrains.com/issue/IDEA-118529#comment=27-656874 Credit: Tavis Elliott
decina il

8

Ho avuto un problema simile. In quel caso era il plug-in Subversion. (Mac Mavericks, versione SVN 1.7.10) Una volta disabilitato questo IntelliJ è diventato di nuovo utilizzabile.

Capito da 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)

altra corsa:

"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) Ciò ha ridotto notevolmente l'utilizzo della CPU rispetto alla modifica delle opzioni VM. Vorrei poter votare più volte.
visita il

1
Ti consiglio di lanciare un bug sul tracker bug ufficiale di JetBrains e di allegare uno snapshot della CPU .
LoKi

6

Migliore esperienza con le seguenti opzioni (idea64.exe.vmoptions):

    -server
    -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: + TieredCompilation

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

5

Avvio intellij 75s -> 10s. Tutto quello che ho fatto è stato passare dall'uso dell'exe predefinito a 32 bit all'utilizzo dell'exe a 64 bit.


5

Per me il problema era una cartella nodes_modules con più di mille file. Ho dovuto contrassegnare la directory come esclusa.

Vedi anche questo elenco di possibili problemi.


4

Sono su 13.1 e ho scoperto che la seguente impostazione fa miracoli per me: Impostazioni IDE -> Editor -> Ritardo autoreparse (ms), che ho impostato su 1500 (il valore predefinito è 300).

Su un grande progetto, il compilatore e le ispezioni inizierebbero costantemente tra le interazioni. Il ritardo forse aiuta a ridurre la pressione dell'heap e generalmente rende l'intera esperienza molto più veloce. Anche la mia CPU è molto più interessante, il che probabilmente aiuta.


3

Ho risolto i miei problemi di prestazioni passando alla modalità a 32 bit. Sembra essere in relazione con JRE con cui funziona IntelliJ. Viene fornito con un JRE 1.7 a 32 bit che viene utilizzato all'avvio di idea.exe. Se avvii idea64.exe, utilizza un JRE a 64 bit installato sul sistema. Nel mio caso questo era un 1.6 JDK (quello che uso per lo sviluppo). Ciò ha reso IntelliJ quasi inutilizzabile.

Dopo aver installato un corretto JDK a 64 bit 1.7, tutto andava bene anche con la modalità a 64 bit.

Vedere la risposta sul sito Web dell'assistenza IntelliJ .


Ho avuto lo stesso problema su Mac. È molto più veloce dopo aver cambiato JVM da 1.6 * a 1.7 * nella info.plist di IntelliJ.
Lei Zhao,

2

Nel mio caso sto sviluppando all'interno di Moodle che crea enormi file minimizzati JS e CSS. Una volta che ho excludedtesi i file minimizzati "memorizzati nella cache" dal progetto, InitelliJ ha funzionato di nuovo normalmente.



0

Sto usando 13 dalla prima beta e non ho alcun problema. Forse sono le tue impostazioni specifiche. Forse il tuo progetto è cresciuto nel tempo e la memoria che hai dato a Idea inizialmente non è sufficiente per questo adesso? Prova a dare a Idea più memoria per lavorare con: http://www.jetbrains.com/idea/webhelp/increasing-memory-heap.html (istruzioni su come farlo).


1
No, non è così ... Ho esattamente gli stessi problemi con lunghe pause, specialmente durante il salvataggio dei file, il passaggio dall'editor a un altro file e l'attivazione del frame. Succede su progetti di tutte le dimensioni e gli stessi progetti esatti andavano bene con 12.1.
Samkass,

1
Sembra che potrebbe essere una garbage collection, interruzioni da parte del sistema operativo o un bug in Idea. Penso che quest'ultimo, sebbene del tutto possibile, sia improbabile perché sto usando l'ultima versione su un macbook pro abbastanza potente, insieme a mezza dozzina di altre persone che fanno la stessa cosa, e non stiamo davvero avendo questi problemi - anche se l'abbiamo fatto quando non avevamo abbastanza RAM. Abbiamo dovuto aggiornare i nostri computer a 16 GB per fornire al sistema operativo memoria sufficiente per lavorare. Stavamo usando tutta la memoria libera per Idea, una VM contenente Oracle e un server Jboss.
Software Engineer

Forse ovviamente, dovresti aggiornare idea64.vmoptions se stai usando un sistema operativo a 64 bit e idea.vmoptions se stai usando un sistema operativo a 32 bit.
nrobey,

0

La mia versione 13 di IntelliJ è notevolmente più lenta della versione 12 della mia esperienza. Esistono alcuni modi per accelerarlo, come aumentare le opzioni della macchina virtuale per intelliJ. Per es. Sto usando un progetto maven e per questo ho aumentato le opzioni di corridore e importatore a 4 GB. Ha reso le cose molto più veloci di prima.


0

Il mio caso particolare (Mac) è che ho modificato il file info.plist in modo da utilizzare java 1.7 * (per qualsiasi motivo) e funzionava come un cane assoluto.

Modificato di nuovo a 1.6 * e installato java 1.6, ed è stato veloce.


0

Stavo affrontando prestazioni lente con Intellij 2016.1 (64 bit) e JDK 1.8 (64 bit). Sono passato a

  • 64 bit intellij
  • 64 bit Java 8 come percorso JAVA_HOME (necessario per eseguire Intellij a 64 bit)
  • Java 8 a 32 bit come JDK da utilizzare per i progetti Intellij (File -> Struttura del progetto | Impostazioni progetto -> Progetto | SDK progetto).

Con questa combinazione, ora le prestazioni di Intellij sono abbastanza buone.



0

Aumenta le dimensioni dell'heap per il compilatore. Per impostazione predefinita, il valore è 700 m, che è troppo piccolo con un numero crescente di plugin.

Alla v2019.1 si trova qui:

Impostazioni -> Build, Execution, Deployment -> Compiler -> Build heap process process (Mbytes)

Dopo averne messo 4000 ho risolto gran parte dei miei problemi di prestazioni.


0

Il mio caso particolare: ho avuto un certo numero di method breakpointstempo mentre stavo eseguendo il mio codice in modalità debug, che ha rallentato il mio intelliJ.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.