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

Советы по работе с крупными проектами с Maven и IntelliJ IDEA

Я читал этот блог о опыте команды, использующей Intellij Idea для крупных проектов maven и также рассмотрели аналогичный вопрос, опубликованный около 2 лет назад для IDEA v.10.0.2.

Один из советов, упомянутых в первом, приобрел большой смысл:
Переместите C:\Users\$user\.IntelliJIdea12 в папку, не проверяемую антивирусом.

Я просматривал параметры производительности, ориентированные на производительность, и в настоящее время мой idea64.exe.vmoptions выглядит следующим образом:

-Xms1200m
-Xmx1200m
-XX:MaxPermSize=200m
-ea
-server
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
-XX:+UnlockExperimentalVMOptions
-XX:+UseParallelGC
-XX:ReservedCodeCacheSize=64m
-XX:+UseCodeCacheFlushing
-Dsun.io.useCanonCaches=false

Вопросы

  • У вас есть больше таких советов для улучшения производительности Intellij IDEA (12.1.3, 64 бит) с большими/огромными проектами maven?

  • Не могли бы вы поделиться открытиями, которые вы внесли в w.

  • Я попытался использовать JDK 7 для запуска IDEA, но это, похоже, не сильно повлияло на его производительность так или иначе. Если вы попытались сделать это, вы испытали то же самое?

4b9b3361

Ответ 1

Как было предложено @CrazyCoder, я выполнил шаги по официальному FAQ по этому вопросу:

Общие решения проблем производительности IntellJ IDEA

В частности, следующее, казалось, оказало заметное влияние:

  • Переместил c:/Users/$user/.IntelliJIdea12 в местоположение, исключенное McAfee для доступа к сканеру и обновил $INTELLJ_INSTALL_FOLDER/bin/idea.properties, чтобы указать на новое местоположение, подобное этому (где c:/dev - это папка, исключенная McAfee):

    idea.config.path = c:/dev/.IntelliJIdea12/config
    idea.system.path = c:/dev/.IntelliJIdea12/system
    idea.plugins.path = c:/dev/.IntelliJIdea12/config/plugins
    idea.log.path = c:/dev/.IntelliJIdea12/system/log

  • В $INTELLJ_INSTALL_FOLDER/bin/idea.properties установите idea.jars.nocopy=true, как описано в этом сообщении блога.

  • Возврат обратно в запас $INTELLIJ_INSTALL_FOLDER/bin/idea64.exe.vmoptions. Остаются только те изменения, которые предлагаются в Слишком низкий размер кучи для 64-битной JVM. Вот что я имею в этом файле:

    -Xms1200m
    -Xmx1200m
    -XX: + UseCompressedOops
    -XX: MaxPermSize = 350m
    -XX: ReservedCodeCacheSize = 96m
    -XX: + UseCodeCacheFlushing
    -ea
    -Dsun.io.useCanonCaches = false
    -Djava.net.preferIPv4Stack = true

  • отключен плагин интеграции Git, так как я в основном использую командную строку Cygwin- Git.

  • Было полезно отслеживать .IntelliJIdea12/idea.log. Например: я отключил плагин osmorc (для OSGI), увидев, что он часто регистрирует ошибку при попытке открытия zip файлов в проектах. Ошибка образца:

    WARN - pi.vfs.impl.jar.JarHandlerBase - ошибка при открытии zip файла: C:\dev\a-maven-project\pom.xml java.util.zip.ZipException: ошибка в открытие zip файла   в java.util.zip.ZipFile.open(Нативный метод)
      в java.util.zip.ZipFile. (ZipFile.java:127)
      в java.util.zip.ZipFile. (ZipFile.java:143)

  • Отключить все плагины, которые мне не нужны. Текущий список отключенных плагинов:

    Отключенные плагины: ASP (0.1), Android Designer, Android Support (10.0), Atlassian Connector для IntelliJ IDE (3.0.9, SVN: 1212171008), Base Cucumber (1.0), BashSupport (1.1beta16), поддержка CFML (3.53), CheckStyle-IDEA (4.2), ClearCase Integration (2.0), Cloud Foundry интеграция (1.0), интеграция CloudBees (1.0), Commander (1.0.0), Скопировать как HTML (0.8.1), Cucumber для Groovy (1.0), Cucumber для Java (1.0), Навигатор базы данных (3.0.2501), Опишите ключ (0.3), Drools Поддержка (1.0), интеграция Eclipse (3.0), поддержка Flash/Flex (1.0), Поддержка GWT (1.0), интеграция Geronimo (1.0), Git Интеграция (8.1), GitHub, Google Engine Engine Integration (1.1.4), Grep Console (1.1), GuiceyIDEA (8.0), HAML, IDEtalk (1.0), IdeaVim (0.28), идентификатор Highlighter (3.62), IntelliJad Plus (0.5.6), JBoss Integration (1.0), JBoss jBPM (2.0.0), JRebel Plugin (2.0.2), JavaFX (1.0), промоутер Key (1.0.11), Log4JPlugin (1.02), Markdown (0.8.3), Osmorc (1.4.3), Perforce Integration (2.0), PluginUpdateNotifier (2.0.3), RemoteTail (0.3.4), Интеграция смолы (8.1), Ruby (5.4.0.20130410), SQL Query Плагин (2.2), Удаленный запуск SSH (0.1), Поддержка потока страниц (1.0), Шов Поддержка страниц (1.0), Поддержка шва (1.0), SmarterEditor (0.8.3), Struts Плагин Navigator (1.3.4), Интеграция Subversion (1.1), TFS Интеграция (999.999), поддержка гобеленов (1.0), TestNG-J (8.0), интерфейс Дизайнер, Дизайнер интерфейса (Core), Поддержка Vaadin (1.0), Visual SourceSafe Интеграция (2.0), Интеграция WebLogic (1.0), Интеграция WebSphere (1.0), ZKM-Unscramble (1.0), поддержка dmServer (0.9.5), hg4idea (10.0), Плагин soapUI (3.5)

Ответ 2

Иногда у вас может закончиться нехватка памяти в большом проекте. Тогда процесс импорта большого проекта maven не выполняется. Поэтому, если какой-либо из модулей вашего проекта подчеркивается красной линией, и вы видите

Exception java.lang.OutOfMemoryError: GC overhead limit exceeded

перейдите в "Настройки → Инструменты сборки → Maven → Импорт" и найдите опцию "Параметры VM для импортера". Увеличьте предел, установите его на -Xmx1g (или больше).

(Источник)

Ответ 3

IntelliJ IDEA 2017.2 Добавлена ​​действительно приятная функция, которая очень помогает при работе с крупными проектами. В принципе, вы можете отметить, какие модули будут загружены IDEA, а какие нет. Разгруженные модули никоим образом не будут затронуты IDE. Они не будут индексироваться, искать, они не будут подвергаться рефакторингу при проверках. Загруженные/разгруженные модули можно быстро настроить в диалоговом окне "Загрузка/выгрузка модулей". Диалог можно открыть, используя

Окно Дерева Проекта → Щелкните правой кнопкой мыши по файлу → Загрузить/Разгрузить Модули...

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