Mengapa IntelliJ 13 IDEA sangat lambat setelah ditingkatkan dari versi 12?


208

Saat menggunakan IntelliJ 13 edisi pamungkas selama seminggu, sepertinya sangat lambat.

Pertama-tama, seluruh IDE berhenti sesaat atau sesekali. Pengisian otomatis editor Java benar-benar lambat dibandingkan dengan 12 versi.

Saya belum mengubah apa pun dari pengaturan default selain menggunakan tema Dracula.

Tampaknya ini bukan masalah saya sendiri. Banyak orang menyarankan untuk mengatur ukuran tumpukan lebih tinggi dari standar, atau membersihkan cache, tetapi saya belum memeriksa atau menguji saran ini. Apakah saya perlu mengubah beberapa pengaturan untuk meningkatkan kinerja versi baru?


4
jika Anda terus mengalami masalah kinerja yang dapat direproduksi, silakan laporkan seperti yang dijelaskan di sini: intellij-support.jetbrains.com/entries/... Terima kasih sebelumnya!
Yann Cébron

1
Sekarang saya memikirkannya, ukuran tumpukan mungkin menjadi masalah. Namun, fakta bahwa IntelliJ 12 dengan pengaturan default berfungsi dengan baik masih tetap. Saya sudah lama tidak menggunakan IntelliJ 13, jadi saya harus memeriksanya nanti.
Jee Seok Yoon

1
Mungkin terkait, mungkin tidak: setidaknya sekali, ketika saya mengalami IntelliJ berjalan sangat lambat, saya perhatikan itu bertepatan dengan I / O yang sangat tinggi. Membersihkan cache-nya memperbaiki masalah. Saya curiga ada sesuatu dalam cache menjadi rusak, dan IDE tidak mengatasinya dengan baik.
Mike Strobel

1
hanya membersihkan cache dan restart bekerja untuk saya juga. File -> Batalkan Cache ... di intellij 14
demian

1
Pertanyaan ini di luar topik.
tar

Jawaban:


252

Saya memiliki masalah yang sama dengan kelambatan pada IntelliJ 13 setelah memutakhirkan dari 12. Apa yang berhasil bagi saya adalah mengedit ide64.vmoptions dalam folder bin dan mengatur tumpukan maksimum ke 8 GB (adalah 512 MB) dan Max PermGen untuk setidaknya 1GB (adalah 300MB) .Contoh di bawah ini:

-Xms128m
-Xmx8192m
-XX:MaxPermSize=1024m

Setelah restart itu jauh lebih cepat.

Untuk IntelliJ 2020 akan kembali ke 2017 di Mac /Applications/IntelliJ IDEA.app/Contents/bin/idea.vmoptions

Di Mac, file ini terletak di jalur ini:

Untuk IntelliJ 14 atau 15 di Mac /Applications/IntelliJ IDEA 14.app/Contents/bin/idea.vmoptions

Untuk IntelliJ 13 di Mac /Users/yourusername/Library/Preferences/IntelliJIdea13/idea.vmoptions

Pemutakhiran IntelliJ (sejak 2017) tampaknya mengembalikan perubahan ini, jadi Anda mungkin perlu mendaftar ulang setelah memperbarui.

Di Ubuntu Linux, file ini terletak di jalur ini relatif terhadap direktori instal:

idea-IU-135.475/bin/idea64.vmoptions

dan untuk 2016.2:

 ~/.IdeaIC2016.2/idea64.vmoptions

Pada Windows 10 (Edisi komunitas ditampilkan di sini) file-file ini berada di:

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


19
Terima kasih Jason .. Ini sepertinya telah melakukan trik untukku. Meningkatkan tumpukan bahkan hanya hingga 2GB (-Xmx2048m) sudah cukup untuk melihat peningkatan kinerja yang signifikan.
Carl Karawani

3
Saya memiliki total 8GB RAM dan beralih ke -Xms512m -Xmx850m -XX: MaxPermSize = 1024m tidak bekerja untuk saya.
coding_idiot

2
Dalam hal ini, Sudahkah Anda mencoba dengan -Xmx4096? Anda mungkin juga ingin mencoba nilai seperti -Xmx2048 atau -Xmx3192 Seperti yang ditunjukkan oleh @CarlKarawani, bahkan peningkatan tumpukan 2GB tampaknya cukup untuk meningkatkan kinerja.
Jason D

2
Masuk akal, tampaknya berbeda tergantung pada mesin juga.
Jason D

7
MaxPermSizediabaikan sejak Java 8.
user2418306

46

Saya perhatikan bahwa menonaktifkan banyak plug in benar-benar membantu mempercepat IntelliJ. Misalnya, saya tidak mengembangkan Aplikasi Android. Menonaktifkan plugin yang terkait dengan pengembangan Android mempercepat waktu buka dan membuat program berjalan lebih lancar di mesin saya.


3
Saya menghapus semua plugin yang tidak saya gunakan, atau kemungkinan tidak akan membutuhkan dalam waktu dekat (mis. Dukungan untuk Mecurical, internasionalisasi, dll). Butuh waktu startup dari MENIT secara harfiah, menjadi sekitar 10-15 detik). Kinerja umum tampaknya jauh lebih tajam sekarang juga. Anehnya, jejak memori tidak banyak berubah, dalam kasus saya, tinggal sekitar 820MB.
sean.boyer

4
Menonaktifkan plugin subversi mengambil cpu saya dari 100% menjadi kurang dari 2%. Jika IntelliJ 13 Anda lambat mungkin merupakan plugin, ini harus menjadi jawaban yang diterima.
mundur

25

Dalam kasus saya, integrasi GIT tampaknya menyebabkan editor menjadi sangat lambat dengan 13.

Saat mengetik, bahkan komentar, dengan integrasi GIT dihidupkan, setelah sekitar 30 karakter, UI membeku selama sekitar satu detik. Biasanya tidak lama, tetapi sangat menjengkelkan.

Saya menggunakan GIT 1.7.8.0. Berjalan pada Windows 7 64 dengan solid state drive dan 12 gigs of ram dan intel I7 dengan 8 CPU. Saya mencoba berbagai hal, seperti memperbarui idea64.exe.vmoptions untuk menggunakan lebih banyak memori, seperti -Xmx2400m dan -XX: MaxPermSize = 2400m, -XX: ParallelGCThreads = 6, tetapi tidak memperbaiki masalah.

Repositori git adalah 1,3 gigs dengan 65.000 file.

Saya membuat proyek "grails" baru di repositori git baru, dan tidak ada masalah. Saya membuat proyek grails baru di repositori git besar yang ada, dan intellij lambat. Saya mematikan integrasi git dengan membuka dialog pengaturan proyek dan menghapus root git, dan masalahnya hilang.

Saya mencoba menonaktifkan semua operasi latar belakang GIT melalui UI 13, tetapi tidak ada bedanya. Saya juga mencoba mode bawaan GIT dan asli, dan tidak ada bedanya.

Dalam kasus saya solusinya adalah menonaktifkan integrasi GIT sampai saya membutuhkannya, dan kemudian menambahkan kembali root git. Jika ada orang lain yang bisa memverifikasi masalah yang sama, maka kami dapat melaporkannya sebagai masalah.


1
Saya sarankan Anda untuk mem-bug bug ke pelacak bug resmi JetBrains dan memasang snapshot CPU .
LoKi

2
Mematikan integrasi git dan ideavim meningkatkan kinerja secara signifikan bagi saya. Terima kasih!
Hari Menon

Saya mengubah pengaturan memori dan menonaktifkan integrasi Git. Sebelum itu editor HTML sangat lambat pada proyek yang cukup besar, saya berpikir untuk melempar komputer keluar jendela tapi ini sepertinya memperbaikinya :)
Richard G

Mematikan plugin terkait git dan VCS, dan saya merasa damai sekarang.
Sanjay Verma

Oktober 2017 check in di sini. Ini tampaknya masih menjadi masalah besar. Saya baru saja mematikan integrasi Git dan melihat peningkatan kecepatan besar-besaran.
rasional

14

Dalam kasus saya, penurunan kinerja besar-besaran disebabkan oleh IntelliJ secara tidak sengaja menggunakan JDK / JRE 1.8. Ini tampaknya mempengaruhi kinerja rendering cukup buruk dan juga menyebabkan beberapa crash dan deadlock.

Ini akan membuat IDE tidak dapat digunakan (latensi 1-2 detik pada operasi) bahkan untuk proyek kecil ~ 3KLOC.

Pastikan Anda menggunakan JDK / JRE 1.7 saat menjalankan intellij:

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

(atau apa pun yang setara untuk OS Anda)

Anda dapat memeriksa JRE yang digunakan untuk menjalankan intellij di bawah Bantuan -> Tentang -> JRE.


3
Ini sangat membantu saya di Ubuntu 14.04
Charney Kaye

2
Kembali ke 1.7 membuatnya 13.1 berperforma lebih baik di Ubuntu 14.04. Terima kasih!
pingw33n

Versi IntelliJ yang lebih baru sudah dibundel dengan Java 8: intellij-support.jetbrains.com/hc/en-us/articles/… dan versi yang lebih lama tidak kompatibel. Juga periksa: stackoverflow.com/questions/8382641/…
Christian Vielma

13

Yah saya tidak bisa membalas posting Insinyur Dollery di atas karena saya belum memiliki 50 perwakilan ... tapi saya perhatikan hal yang sama. Satu masalah telah dilaporkan mengenai hg4idea: http://youtrack.jetbrains.com/issue/IDEA-118529 .

Belum ada perbaikan kecuali untuk menonaktifkan plugin hg4idea. Tetapi jika itu ternyata menjadi masalah Anda, pilihlah bug!

Sunting: JetBrains telah memperbaiki bug di build IU-138-815!


Tampaknya ada solusi yang disediakan di sini: youtrack.jetbrains.com/issue/IDEA-118529#comment=27-656874 Kredit: Tavis Elliott
berarti

8

Saya punya masalah serupa. Dalam hal itu adalah plug-in Subversion. (Mac Mavericks, SVN versi 1.7.10) Setelah saya menonaktifkan IntelliJ ini bisa digunakan lagi.

Dapatkan ini dari 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)

run lainnya:

"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) Ini mengurangi penggunaan CPU saya lebih dari mengubah opsi vm. Saya berharap saya dapat memperbaiki ini beberapa kali.
mundur

1
Saya sarankan Anda untuk mem-bug bug ke pelacak bug resmi JetBrains dan memasang snapshot CPU .
LoKi

6

Pengalaman terbaik dengan opsi berikut (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
    - ya

5

75-an -> 10-an startup intellij. Yang saya lakukan adalah beralih dari menggunakan exe 32bit default untuk menggunakan exe 64bit.


5

Bagi saya masalahnya adalah folder nodes_modules dengan lebih dari seribu file. Saya harus menandai direktori sebagai dikecualikan.

Juga lihat ini daftar kemungkinan masalah.


4

Saya pada 13.1, dan saya telah menemukan pengaturan berikut ini bekerja untuk saya: Pengaturan IDE -> Editor -> Autoreparse delay (ms), yang telah saya atur ke 1500 (standarnya adalah 300).

Pada proyek besar, kompiler dan inspeksi akan terus-menerus dimulai di antara interaksi. Penundaan mungkin membantu mengurangi tekanan timbunan dan umumnya membuat keseluruhan pengalaman jauh lebih cepat. CPU saya juga jauh lebih keren, yang mungkin bisa membantu.


3

Saya telah memecahkan masalah kinerja saya dengan beralih ke mode 32 bit. Tampaknya terkait dengan JRE yang dijalankan IntelliJ. Itu kapal dengan JRE 32 bit 1,7 yang digunakan ketika memulai idea.exe. Jika Anda memulai idea64.exe, ia menggunakan JRE 64 bit yang diinstal pada sistem. Dalam kasus saya ini adalah 1,6 JDK (yang saya gunakan untuk pengembangan). Ini menyebabkan IntelliJ hampir tidak dapat digunakan.

Setelah menginstal 64 bit 1.7 JDK yang tepat semuanya baik-baik saja dengan mode 64 bit juga.

Lihat jawabannya di situs web Dukungan IntelliJ .


Saya memiliki masalah yang sama pada Mac. Jauh lebih cepat setelah saya mengubah JVM dari 1,6 * menjadi 1,7 * di info.plist IntelliJ.
Lei Zhao

2

Dalam kasus saya, saya sedang mengembangkan di dalam Moodle yang membuat file kecil JS dan CSS. Setelah saya excludedtesis "cache" file yang diperkecil dari proyek, InitelliJ berjalan normal lagi.



0

Saya telah menggunakan 13 sejak beta awal dan saya tidak punya masalah sama sekali. Mungkin itu pengaturan spesifik Anda. Mungkin proyek Anda telah berkembang dari waktu ke waktu dan memori yang Anda berikan Ide awalnya tidak cukup untuk sekarang? Cobalah memberi Idea lebih banyak memori untuk digunakan: http://www.jetbrains.com/idea/webhelp/increasing-memory-heap.html (petunjuk tentang cara melakukannya).


1
Tidak, ini bukan ... Saya mengalami masalah yang sama persis dengan jeda panjang - terutama selama menyimpan file, beralih editor ke file yang berbeda, dan aktivasi bingkai. Itu terjadi pada proyek dari semua ukuran dan proyek yang sama persis baik-baik saja dengan 12.1.
samkass

1
Kedengarannya seperti pengumpulan sampah, gangguan oleh sistem operasi, atau bug di Idea. Saya pikir yang terakhir, meskipun sangat mungkin, tidak mungkin karena saya menggunakan versi terbaru pada pro macbook yang sangat kuat, bersama dengan setengah lusin orang lain melakukan hal yang sama, dan kami tidak benar-benar mengalami masalah ini - meskipun kami lakukan ketika kami tidak memiliki cukup RAM. Kami harus memperbarui mesin kami ke 16GB untuk memberikan OS memori cadangan yang cukup untuk bekerja dengannya. Kami menggunakan semua memori bebas untuk Idea, VM yang berisi Oracle, dan server Jboss.
Insinyur Perangkat Lunak

Mungkin jelas, Anda harus memperbarui ide64.vmoptions jika Anda menggunakan OS 64-bit, dan idea.vmoptions jika menggunakan OS 32-bit.
nrobey

0

IntelliJ versi 13 jauh lebih lambat daripada versi 12 dari pengalaman saya. Ada beberapa cara untuk mempercepatnya, seperti meningkatkan opsi VM untuk IntelliJ. Untuk misalnya. Saya menggunakan proyek pakar, dan untuk itu saya meningkatkan opsi runner dan importir menjadi 4GB. Itu membuat segalanya lebih cepat dari sebelumnya.


0

Kasus khusus saya (Mac) adalah saya mengedit info.plist untuk menggunakan java 1.7 * (untuk alasan apa pun), dan itu berjalan seperti anjing absolut.

Berubah kembali ke 1.6 * dan menginstal java 1.6, dan itu cepat.


0

Saya menghadapi kinerja yang lamban dengan Intellij 2016.1 (64-bit) dan JDK 1.8 (64-bit). Saya beralih ke

  • 64 bit intellij
  • 64 bit Java 8 sebagai jalur JAVA_HOME (Ini diperlukan untuk menjalankan Intellij 64-bit)
  • 32 bit Java 8 sebagai JDK untuk digunakan untuk proyek Intellij (File -> Struktur Proyek | Pengaturan Proyek -> Proyek | Proyek SDK).

Dengan kombinasi ini, sekarang kinerja Intellij cukup baik.



0

Tambah ukuran heap untuk kompiler. Secara default nilainya 700m yang terlalu kecil dengan meningkatnya jumlah plugin.

Di v2019.1 terletak di sini:

Pengaturan -> Build, Eksekusi, Deployment -> Compiler -> Build heap size (Mbytes)

Setelah saya menempatkan 4000 di sana itu memecahkan sebagian besar masalah kinerja saya.


0

Kasus khusus saya: Saya memiliki beberapa method breakpointssaat saya menjalankan kode saya dalam mode debug, yang membuat intelliJ saya lambat.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.