Ускорение IntelliJ-Идея - PullRequest
       57

Ускорение IntelliJ-Идея

90 голосов
/ 13 апреля 2011

Я использую intelliJ для разработки на Scala и получил на прошлой неделе 8 ГБ нового ОЗУ, поэтому я подумал: пора его использовать. Я проверил свой диспетчер задач и нашел intelliJ, используя ~ 250mb . Из затмения я знал, что настройка параметров JVM очень помогла улучшить скорость, поэтому я погуглил ...

и нашел этот для OS X Я не смог сразу найти опцию JVM, поэтому начал настраивать Xmx. При 1 ГБ я понял, что он больше не запускается. Я проверил Java-версию intelliJ, нашел ее устаревшей и 32-битной.

Таким образом, чтобы использовать текущий JDK и 64 бит , вам нужно изменить ссылку на:

IntelliJ IDEA Community Edition 10.0.2\bin\idea.exe

до

IntelliJ IDEA Community Edition 10.0.2\bin\idea.BAT

и настройте «Старт в»

Летучая мышь ищет JDK_HOME и использует 64-битную версию.

Мои текущие Опции VM , которые находятся в

...\IntelliJ IDEA Community Edition 10.0.2\bin\idea.exe.vmoptions

есть

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

Вместо -XX:+UseParallelGC вы можете использовать -XX:+UseConcMarkSweepGC, то есть

приемлемый выбор для настольных приложений, но я изменил пропускную способность коллекционер недавно. потому что с быстрая машина и достаточно маленькая куча, у вас быстрые паузы, большая пропускная способность и нет проблем с фрагментацией (ijuma. #scala)

Изменения:

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

Сейчас я буду придерживаться этих опций. Мне бы очень хотелось узнать ваш опыт работы с ним.

Какие варианты лучше всего подходят для вас? Как скрыть это окно cmd при запуске intelliJ через .bat? :)

Кстати, вот еще одна ссылка для настройки intelliJ . В основном на стр.20 / 21 сказано отключить восстановление windows и антивирус для системных директорий.

Еще один способ ускорить работу intelliJ - поместить системную папку intellij в ramdrive (спасибо OlegYch | h).

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

См. Superuser для Win 7 64-битный ОЗУ или этот . 1 ГБ мне кажется вполне подходящим.

Еще один совет, который дал мне друг, - исключить каталоги проектов из вашего антивируса (сканирование при доступе)

Есть похожие посты относительно тюнинга Eclipse:

Ответы [ 12 ]

31 голосов
/ 25 января 2014

Эта комбинация прекрасно работает на моем Intellij13, работающем в Mavericks:

Обновлено 18 июля 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

Я сохраняю эту настройку обновленной на https://github.com/adben/config/blob/master/idea64.vmoptions

28 голосов
/ 25 апреля 2011

Для меня переход на SSD-накопитель значительно улучшил производительность (особенно для крупных проектов).

20 голосов
/ 13 апреля 2011

Относительно:

Как скрыть это окно cmd при запуске intelliJ через .bat?

Используйте команду 'start' и javaw.exe вместе, поэтому, если у вас есть:

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

изменить на:

SET JAVA_EXE=%IDEA_JDK%\jre\bin\javaw.exe
...
start "Intellij IDEA" /b "%JAVA_EXE%" %JVM_ARGS% -cp "%CLASS_PATH%" %IDEA_MAIN_CLASS_NAME% %*
19 голосов
/ 02 апреля 2014

Некоторое время назад я искал способы ускорить компиляцию моего проекта, и это результат. Это не для самой IntelliJ IDEA, но очень поможет при (пере) создании больших проектов и, думаю, будет работать и с любыми другими IDE. Кроме того, я описал подход Linux, но я уверен, что у Windows есть собственные реализации RAM-диска.

Самый простой способ ускорить компиляцию - переместить вывод компиляции на RAM-диск.

Настройка RAM-диска

Открыть fstab

$ sudo gedit /etc/fstab

(вместо gedit вы можете использовать vi или что угодно)

Настройка точки монтирования RAM-диска

Я использую RAM-диски в нескольких местах в моей системе, и один из них - /tmp, поэтому я просто положу туда вывод своей компиляции:

tmpfs /var/tmp tmpfs defaults 0 0

В этом случае размер вашей файловой системы не будет ограничен, но это нормально, мой размер /tmp сейчас составляет 73 МБ. Но если вы боитесь, что размер RAM-диска станет слишком большим - вы можете ограничить его размер, например ::1010*

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

Настройка проекта

В IntelliJ IDEA откройте структуру проекта (Ctrl+Alt+Shift+S по умолчанию), затем перейдите в Project - «Вывод компилятора проекта» и переместите его в точку монтирования RAM-диска:

/tmp/projectName/out

(я добавил папку projectName, чтобы легко найти ее, если мне нужно туда попасть или я буду работать с несколькими проектами одновременно)

Затем перейдите в Модули, и во всех ваших модулях перейдите в Пути и выберите «Унаследовать выходной путь компиляции проекта» или, если вы хотите использовать пользовательский выходной путь компиляции, измените «Выходной путь» и «Тестовый выходной путь» как вы это делали, чтобы проектировать вывод компилятора раньше.

Вот и все, ребята!

P.S. Несколько цифр: время компиляции моего текущего проекта в разных случаях (приблизительно):

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

P.P.S. Если вы используете SSD-диск, помимо ускорения компиляции вы уменьшите количество операций записи на ваш диск, поэтому это также поможет вашему SSD жить долго и счастливо;)

19 голосов
/ 13 апреля 2011

Самое полезное, что вы можете сделать для IntelliJ, - это иметь много свободной памяти для кэширования на диске .IntelliJ сохраняет большую часть своей обработки в кэшированных файлах.Это хорошо работает, если у вас достаточно свободной памяти, но если ваш дисковый кэш ограничен, вы увидите регулярные длительные паузы.

Я бы предложил -XX:+UseConcMarkSweepGC вместо G1.

Я также работаю с локальными копиями файлов, чтобы минимизировать задержку доступа к файлу.

BTW : Для проекта, в котором я работаю, я заметил разницу между работой на машине с 24 ГБ и однойс 48 ГБ, хотя максимальная куча установлена ​​на 2 ГБ;)

4 голосов
/ 15 июня 2012

Я провел некоторые эксперименты и обнаружил, что для уменьшения пауз GC лучше всего подходит следующая комбинация: -XX: + UseConcMarkSweepGC -XX: SoftRefLRUPolicyMSPerMB = 50.

Я бы тоже не сделал кучу слишком большой, 512 или даже меньше - это нормально для меня. В противном случае, когда он заполнится, GC придется пройти все это, что займет некоторое время.

2 голосов
/ 21 апреля 2015

Не уверен, почему это еще не было упомянуто - вы можете включить Power Save mode, который отключает многие фоновые действия IJ , включая Files Synchronization.В некоторых статьях говорится, что можно отключить синхронизацию файлов в параметрах структуры проекта (например, в статье в ответе @ OJ278), но мне не удалось найти эту опцию в IJ 14 , но Power Save mode кажетсячтобы отключить его.

У меня довольно большая кодовая база ( AOSP исходный код), поэтому активность HD из-за синхронизации фоновых файлов раздражает ...

2 голосов
/ 15 июня 2012

Хорошие советы вы можете найти здесь.Например, скорость переключения с IDEA на другое приложение и наоборот была значительно улучшена после отключения функции «Отключить синхронизацию файлов».

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

1 голос
/ 25 сентября 2018

Ответ, предоставленный adben, очень полезен для повышения производительности моей машины. Хотя я немного переписал его после прочтения статьи 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

Они улучшили производительность крупных проектов, используя вышеуказанную конфигурацию, и безупречно работают и для наших проектов. Наконец, я отключил все плагины, которые не буду использовать, и это также улучшит ситуацию.

Ссылка: https://dzone.com/articles/the-one-and-only-reason-to-customize-intellij-idea

1 голос
/ 26 апреля 2016

Вы можете использовать плагин оптимизатора intellij:

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

С плагином вы можете:

  • Параметры автоматической настройки виртуальной машины
  • Отключить проверку класса
  • Очистить системные кэши
  • Настроить внешние инструменты сборки
  • Проверить последнюю версию Oracle JDK
  • Пропустить сборку и повторно развернуть
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...