Чому IntelliJ 13 IDEA настільки повільний після оновлення до версії 12?


208

Хоча користування IntelliJ 13 ultimate Edition протягом тижня, це просто здається дуже повільним.

Перш за все, вся IDE зупиняється на секунду або близько того раз у раз. Автоматичне завершення редактора Java справді повільне порівняно з 12 версією.

Я нічого не змінив у налаштуваннях за замовчуванням, крім використання теми Dracula.

Здається, це не моя проблема. Багато людей пропонували встановити розмір купи вище, ніж за замовчуванням, або очистити кеш, але я не перевіряв і не перевіряв ці пропозиції. Чи потрібно змінити деякі налаштування, щоб покращити продуктивність нової версії?


4
якщо ви продовжуєте стикатися з відтворюваними проблемами продуктивності, повідомте про них, як описано тут: intellij-support.jetbrains.com/entries/… Дякую заздалегідь!
Янна Себрон

1
Тепер, коли я думаю про це, проблема розміру купи може бути проблемою. Однак факт, що IntelliJ 12 із налаштуваннями за замовчуванням працює нормально, все ще залишається. Я не використовував IntelliJ 13 досить довгий час, тому мені доведеться перевірити це пізніше.
Jee Seok Yoon

1
Можливо, пов'язане, можливо, ні: принаймні один раз, коли я відчував, що IntelliJ працює дуже повільно, я помітив, що це збігається з надзвичайно високим входом / виводом. Витирання кешу вирішило проблему. Я підозрюю, що щось у кеші пошкодилось, і IDE не впорався з цим.
Майк Стробель

1
просто очищення кешу та перезапуск працювали і для мене. Файл -> Схованки ... ПЕРЕСТАЄ ДІЯТИ в IntelliJ 14
Дем'ян

1
Це питання поза темою.
тар

Відповіді:


252

У мене була така ж проблема з повільністю в IntelliJ 13 після оновлення з 12. Що для мене працювало, це редагування ідеї64.vmoptions у папці bin та встановлення максимуму куки до 8 ГБ (було 512 МБ), а Max PermGen - як мінімум до 1 ГБ (було 300 Мб). Приклад нижче:

-Xms128m
-Xmx8192m
-XX:MaxPermSize=1024m

Після перезапуску це було набагато швидше.

Для IntelliJ 2020, що повернувся до 2017 року на Mac /Applications/IntelliJ IDEA.app/Contents/bin/idea.vmoptions

На Mac цей файл знаходиться у цьому шляху:

Для IntelliJ 14 або 15 на Mac /Applications/IntelliJ IDEA 14.app/Contents/bin/idea.vmoptions

Для IntelliJ 13 на Mac /Users/yourusername/Library/Preferences/IntelliJIdea13/idea.vmoptions

Оновлення IntelliJ (з 2017 року), здається, скасує цю зміну назад, тому вам може знадобитися повторно застосувати її після оновлення.

У Ubuntu Linux цей файл розташований у цьому шляху відносно каталогу встановлення:

idea-IU-135.475/bin/idea64.vmoptions

та за 2016.2:

 ~/.IdeaIC2016.2/idea64.vmoptions

У Windows 10 (видання спільноти показано тут) ці файли розміщені у:

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


19
Дякую, Джейсон. Це, здається, зробило мені трюк. Збільшити купу навіть просто до 2 Гб (-Xmx2048 м) було достатньо, щоб побачити значне підвищення продуктивності.
Карл Каравані

3
У мене є 8 Гб оперативної пам’яті і перехід на -Xms512m -Xmx850m -XX: MaxPermSize = 1024 м не працював для мене.
coding_idiot

2
У такому випадку ви пробували з -Xmx4096? Ви також можете спробувати такі значення, як -Xmx2048 або -Xmx3192 Як зазначав @CarlKarawani, навіть збільшення купи на 2 Гб здається достатньою для підвищення продуктивності.
Джейсон Д

2
Має сенс, схоже, різний і залежно від машини.
Джейсон Д

7
MaxPermSizeігнорується з Java 8.
користувач2418306

46

Я помітив, що відключення багатьох плагінів дійсно допомагає пришвидшити IntelliJ. Наприклад, я не розробляю програми для Android. Вимкнення плагінів, пов’язаних з розробкою Android, прискорює час завантаження і робить програму значно більш гладкою на моїй машині.


3
Я видалив усі плагіни, які не використовую, або, швидше за все, мені не знадобляться (наприклад, підтримка Mecurical, інтернаціоналізація тощо). Час запуску знадобилося буквально з MINUTES, приблизно до 10-15 секунд). Загальна ефективність, здається, зараз набагато спритніша. Як не дивно, слід пам’яті не сильно змінився, в моєму випадку - близько 820 Мб.
sean.boyer

4
Якщо вимкнути плагін для підриву, мій процесор знизився зі 100% до менш ніж 2%. Якщо ваш IntelliJ 13 повільний, це, мабуть, плагін, це має бути прийнятою відповіддю.
pllee

25

У моєму випадку, здається, інтеграція GIT спричиняє редактор неприємно повільний з 13.

Під час друку, навіть коментарів із включеною інтеграцією GIT після приблизно 30 символів інтерфейс заморожується на секунду або близько того. Зазвичай це недовго, але дуже дратує.

Я використовую GIT 1.7.8.0. Працює на Windows 7 64 із твердотільним накопичувачем та 12 гігами оперативної пам’яті та Intel I7 з 8 процесорами. Я спробував різні речі, як-от оновлення idea64.exe.vmoptions, щоб використовувати більше пам’яті, наприклад -Xmx2400m та -XX: MaxPermSize = 2400м, -XX: ParallelGCThreads = 6, але це не вирішило проблему.

Сховище git - 1,3 гіга з 65 000 файлами.

Я створив новий проект «grails» у новому сховищі git, і немає жодної проблеми. Я створив новий проект grails у існуючому великому сховищі git, і Intellij повільний. Я вимкнув інтеграцію git, відкривши діалогове вікно налаштувань проекту та видаливши корінь git, і проблема зникає.

Я спробував відключити всі фонові операції GIT через 13 інтерфейс, але це не змінило значення. Я також спробував вбудований і вбудований режими GIT, і це не мало значення.

У моєму випадку, схоже, вирішення проблеми полягає в тому, щоб відключити інтеграцію GIT, поки мені це не потрібно, а потім просто знову додати корінь git. Якщо хтось може підтвердити ту саму проблему, то ми можемо повідомити про це як про проблему.


1
Я рекомендую вам запустити помилку в офіційний трекер помилок JetBrains та долучити знімок процесора .
LoKi

2
Вимкнення інтеграції git та ideavim для мене значно покращило продуктивність. Дякую!
Харі Менон

Я змінив налаштування пам'яті та відключив інтеграцію Git. До цього редактор HTML був страшенно повільним у помірному масштабному проекті, я думав викинути комп'ютер у вікно, але це, здавалося, це виправить :)
Річард G,

Вимкнено плагіни, пов’язані з git та VCS, і я зараз у спокої.
Санджай Верма

Жовтень 2017 року тут. Це все ще здається головним питанням. Я просто вимкнув інтеграцію Git і побачив масштабне збільшення швидкості.
ірраціонально

14

У моєму випадку масове зниження продуктивності було спричинене IntelliJ ненавмисно, використовуючи JDK / JRE 1.8. Це, здається, впливає на ефективність візуалізації досить погано, а також призводить до деяких несподіваних збоїв та тупиків.

Це зробить IDE непридатним (затримка 1-2 секунди на операціях) навіть для невеликого проекту ~ 3KLOC.

Просто переконайтеся, що ви використовуєте JDK / JRE 1.7 під час роботи intellij:

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

(або будь-який еквівалент для вашої ОС)

Ви можете перевірити JRE, який використовується для запуску intellij, у розділі Довідка -> Про -> JRE.


3
Це була величезна допомога для мене на Ubuntu 14.04
Charney Kaye

2
Повернення до 1.7 дозволило 13.1 зробити набагато кращі результати на Ubuntu 14.04. Дякую!
pingw33n

Новіші версії IntelliJ вже в комплекті з Java 8: intellij-support.jetbrains.com/hc/en-us/articles/… та старіші версії не сумісні. Також перевірте: stackoverflow.com/questions/8382641 / ...
Christian Віельма

13

Ну, я не можу відповісти на повідомлення інженера Доллері вище, тому що у мене ще немає 50 повторень ... але я помітив те саме. Про одну проблему вже було повідомлено щодо hg4idea: http://youtrack.jetbrains.com/issue/IDEA-118529 .

Ще немає виправлень, окрім відключення плагіну hg4idea. Але якщо це виявиться вашою проблемою, голосуйте за помилку!

Редагувати: JetBrains виправила помилку в збірці IU-138-815!


Тут, мабуть, існує вирішення: youtrack.jetbrains.com/issue/IDEA-118529#comment=27-656874 Кредит: Tavis Elliott
tmeans

8

У мене була подібна проблема. У цьому випадку це був плагін Subversion. (Mac Mavericks, версія SVN 1.7.10) Після того, як я відключив цей IntelliJ, знову став корисним.

Отримав це з 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)

інший пробіг:

"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) Це значно зменшило моє використання процесора, ніж зміна параметрів vm. Я б хотів, щоб я міг підтвердити це кілька разів.
pllee

1
Я рекомендую вам запустити помилку в офіційний трекер помилок JetBrains та долучити знімок процесора .
LoKi

6

Найкращий досвід із наступними параметрами (idea64.exe.vmoptions):

    -сервіс
    -Xms1g
    -Xmx3g
    -Xss16m
    -XX: NewRatio = 3

    -XX: ReservedCodeCacheSize = 240м
    -XX: + UseCompressionOops
    -XX: SoftRefLRUPolicyMSPerMB = 50

    -XX: ПаралельніGCThreads = 4
    -XX: + UseConcMarkSweepGC
    -XX: ConcGCThreads = 4

    -XX: + CMSClassUnloadingEnabled
    -XX: + CMSParallelRemarkEnabled
    -XX: CMSInitiatingOccupancyFraction = 65
    -XX: + CMSScavengeBeforeRemark
    -XX: + ВикористовуватиCMSInitiatingOccupancyOnly

    -XX: MaxTenuringThreshold = 1
    -XX: SurvivorRatio = 8
    -XX: + UseCodeCacheFlushing
    -XX: + AggressiveOpts
    -XX: -TraceClassUnloading
    -XX: + ЗавждиPreTouch
    -XX: + багатоярусна компіляція

    -Djava.net.preferIPv4Stack = вірно
    -Dsun.io.useCanonCaches = помилково
    -Djsse.enableSNIExtension = вірно
    -еа

5

75-х -> 10-х років запуску Intellij. Все, що я зробив, - це перейти з використання 32-бітного EXE за замовчуванням на використання 64-бітного EXE.


5

Для мене проблемою була папка nodes_modules з більш ніж тисячею файлів. Я повинен був позначити каталог виключеним.

Дивіться також цей список можливих проблем.


4

Я на 13.1, і я виявив, що наступні параметри для мене задаються чудесами: Налаштування IDE -> Редактор -> Затримка автозавантаження (мс), яку я встановив на 1500 (за замовчуванням - 300).

У великому проекті компілятор та інспекції постійно починаються між взаємодіями. Затримка, можливо, допоможе знизити тиск у купі і, як правило, зробить весь досвід набагато швидшим. Мій процесор також набагато крутіший, що, ймовірно, допомагає.


3

Я вирішив свої проблеми з продуктивністю, перейшовши на 32-бітний режим. Схоже, це пов'язано з JRE, з яким працює IntelliJ. Він поставляється з 32-бітовим 1,7 JRE, який використовується при запуску idea.exe. Якщо ви запустите idea64.exe, він використовує 64-бітний JRE, встановлений у системі. У моєму випадку це був 1.6 JDK (той, який я використовую для розробки). Це зробило IntelliJ майже непридатним.

Після встановлення правильного 64-бітного 1,7 JDK все було добре і з 64-бітовим режимом.

Дивіться відповідь на веб-сайті підтримки IntelliJ .


У мене була така ж проблема на Mac. Це набагато швидше після того, як я змінив JVM з 1,6 * на 1,7 * в info.plist IntelliJ.
Lei Zhao

2

У моєму випадку я розвиваюсь у Moodle, який створює величезні JS та CSS-файли. Як тільки я excludedтез "кеширував" мінімізовані файли з проекту, InitelliJ знову працював нормально.


1

У мене були подібні проблеми з дуже повільним запуском і проблеми купи, збільшення VM не зробило великої різниці, просто затримало неминуче, для мене виправданням було визнати недійсним кеш через File> InvalidateCaches / Restart.

https://www.jetbrains.com/help/idea/2016.1/cleaning-system-cache.html


0

Я використовую 13 з ранньої бета-версії, і у мене зовсім немає проблем. Можливо, це ваші конкретні налаштування. Можливо, ваш проект з часом зростав, і пам'ять, яку ви дали ідеї, спочатку недостатня для цього? Спробуйте надати Idea більше пам’яті для роботи: http://www.jetbrains.com/idea/webhelp/increasing-memory-heap.html (інструкції, як це зробити).


1
Ні, це не все ... У мене виникають однакові проблеми з довгими паузами - особливо під час збереження файлів, переключення редактора на інший файл та активації кадру. Це трапляється на проектах будь-якого розміру і точно такі ж проекти були чудовими з 12.1.
samkass

1
Це здається, що це може бути або збирання сміття, перебої в операційній системі, або помилка в Idea. Я думаю, що остання, хоча цілком можлива, малоймовірна, тому що я використовую останню версію на досить потужній програмі macbook pro, а також півдесятка інших людей роблять те саме, і у нас насправді немає таких проблем - хоча ми це зробили, коли нам не вистачало оперативної пам’яті. Нам довелося оновити наші машини до 16 Гб, щоб забезпечити ОС достатньою запасною пам'яттю для роботи. Ми використовували всю вільну пам'ять для Idea, VM, що містить Oracle, і сервер Jboss.
інженер програмного забезпечення

Можливо, очевидно, вам слід оновити idea64.vmoptions, якщо ви використовуєте 64-бітну ОС, а idea.vmoptions, якщо використовуєте 32-бітну ОС.
nrobey

0

Моя версія IntelliJ 13 помітно повільніше, ніж версія 12. Існує кілька способів прискорити його, наприклад, збільшити VM варіанти для IntelliJ. Наприклад, наприклад. Я використовую проект Maven, і для цього я збільшив параметри бігуна та імпортера до 4 Гб. Це робило речі набагато швидше, ніж раніше.


0

У моєму конкретному випадку (Mac) я редагував info.plist, щоб використовувати java 1.7 * (з будь-якої причини), і він працював як абсолютна собака.

Змінено на 1.6 * і встановлено java 1.6, і це було швидко.


0

Я стикався з млявою продуктивністю з Intellij 2016.1 (64-розрядні) та JDK 1.8 (64-розрядні). Я перейшов на

  • 64 бітний інтелект
  • 64-бітний Java 8 як шлях JAVA_HOME (Це потрібно для запуску 64-розрядного Intellij)
  • 32-бітний Java 8 як JDK використовуватиметься для проектів Intellij (Файл -> Структура проекту | Налаштування проекту -> Проект | Проект SDK).

За цією комбінацією тепер продуктивність Intellij цілком нормальна.


0

Редагування файла idea.vmoptions - лише тимчасове рішення до наступного оновлення продукту. Дивіться довідкові сторінки JetBrains для більш постійного рішення щодо встановлення цих значень за допомогою налаштувань vm - https://www.jetbrains.com/help/idea/tuning-the-ide.html


0

Збільшити розмір купи компілятора. За замовчуванням значення становить 700 м, що є занадто малим із збільшенням кількості плагінів.

На v2019.1 він розташований тут:

Налаштування -> Збірка, Виконання, Розгортання -> Компілятор -> Розмір купи процесу (Мбайт)

Після того, як я помістив туди 4000, це вирішило більшість моїх питань щодо продуктивності.


0

Мій конкретний випадок: у мене було багато часу, method breakpointsколи я запускав свій код у режимі налагодження, завдяки чому мій інтелект був повільним.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.