it-swarm.com.ru

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

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

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

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

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, который 

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

Изменения:

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

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

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

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

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

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

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

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

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

90
Stefan K.

Эта комбинация прекрасно работает на моем 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

30
adben

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

28
Yann Cébron

Что касается:

Как мне скрыть это окно 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% %*
20
Dilum Ranatunga

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

Я бы предложил -XX:+UseConcMarkSweepGC, а не G1.

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

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

19
Peter Lawrey

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

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

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

Открыть фстаб

$ Sudo gedit /etc/fstab

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

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

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

tmpfs /var/tmp tmpfs defaults 0 0

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

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

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

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

/tmp/projectName/out

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

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

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

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

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

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

18
uncle Lem

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

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

4
Peter Gromov

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

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

2
OJ278

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

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

2
Mixaz

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

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

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

  • Автоматическая настройка параметров виртуальной машины
  • Отключить проверку класса
  • Очистить системные кэши
  • Настроить внешние инструменты сборки
  • Проверьте последнюю версию Oracle JDK
  • Пропустить сборку и повторное развертывание
1
iberck

Ответ, предоставленный 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

0
Arefe

Я использовал эту комбинацию, и она отлично работает в моей среде 

-server
-Xms2048m
-Xmx2048m
-XX:NewSize=512m
-XX:MaxNewSize=512m
-XX:PermSize=512m
-XX:MaxPermSize=512m
-XX:+UseParNewGC
-XX:ParallelGCThreads=4
-XX:MaxTenuringThreshold=1
-XX:SurvivorRatio=8
-XX:+UseCodeCacheFlushing
-XX:+UseConcMarkSweepGC
-XX:+AggressiveOpts
-XX:+CMSClassUnloadingEnabled
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-XX:+CMSParallelRemarkEnabled
-XX:CMSInitiatingOccupancyFraction=65
-XX:+CMSScavengeBeforeRemark
-XX:+UseCMSInitiatingOccupancyOnly
-XX:ReservedCodeCacheSize=64m
-XX:-TraceClassUnloading
-ea
-Dsun.io.useCanonCaches=false
0
Yasir Shabbir Choudhary