Подтвердить что ты не робот

Ускорение IntelliJ-Idea

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

и нашел этот для OS X, я не смог сразу найти опцию JVM, поэтому я начал настраивать Xmx. На 1 ГБ я понял, что больше не запускается. Я проверил версию IntelliJ Java, нашел ее устаревшей и 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-битную JDK_HOME.

Мои текущие параметры виртуальной машины, которые находятся в

...\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-битный RAM Drive или этот. 1 ГБ, кажется, хорошо для меня.

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

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

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

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

Ответ 5

Некоторое время назад я искал способы ускорить компиляцию проекта, и это результат. Это не для самой 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-диска станет слишком большим, вы можете ограничить его размер, например:

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 жить долго и счастливо;)

Ответ 6

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

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

Ответ 7

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

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

Ответ 8

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

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

Ответ 9

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

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

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

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

Ответ 10

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

Ответ 11

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

-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