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

Почему IntelliJ IDEA висит на "индексировании"?

Я работаю на Arch Linux, на 6-ядерном процессоре i7-5930k и 64 ГБ оперативной памяти DDR4, и я использую IntelliJ IDEA 14.

ИДЕЯ работала отлично для меня несколько дней назад, но однажды, внезапно, она начала висит после открытия проекта во время этапа "Индексация". Я не обновлял IDEA, и ничего не изменилось в моих проектах. Интерфейс IDE зависает после того, как он открывает проект, с помощью всего лишь маленькой щели индикатора выполнения для "индексации". Каждые 5-10 минут или около того он размораживается, и индикатор выполнения немного продвигается вперед, прежде чем среда снова замерзает еще несколько минут. Это повторяется раз в течение от 15 минут до часа, пока он окончательно не завершит индексирование, и в этот момент он висит еще 5-10 минут, ничего не делая, прежде чем он окончательно разблокируется и позволяет мне развиваться.

Пока это происходит, моя система довольно не реагирует - вкладки Firefox занимают много времени, чтобы переключаться, а прокрутка в них лагги. Открытие нового окна терминала занимает много времени. Переключение окон в целом занимает некоторое время. В htop один из моих ядер процессора загружается со скоростью 100%, в то время как остальные имеют нормальную нагрузку и около 6 ГБ ОЗУ (довольно нормальная нагрузка, когда эта система не работает.)

Вещи, которые я пробовал, которые не помогли:

  • Удалить папку кэшей
  • Удалить всю папку ~/.IntelliJIDEA14
  • Переустановите пакет IntelliJ
  • Загрузите IntelliJ вручную с сайта JetBrains и запустите его из папки "Мои загрузки" (чтобы узнать, есть ли что-то не так с пакетом Arch AUR).
  • Настройте IntelliJ для использования моей системы JVM и Maven для импорта вместо встроенных инструментов
  • Открытие нескольких разных проектов (а не только тот, с которым я изначально столкнулся с проблемой.)

Эта проблема действительно вредит моему рабочему процессу, если у кого-то есть какое-то решение, я был бы очень благодарен.

4b9b3361

Ответ 1

Я, наконец, понял это. Решение было... Скорее странно. TL; DR: Запустите его под strace. Читайте дальше для более подробного объяснения.

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

Это дало мне очень странные результаты: strace извергал почти постоянный поток segfaults. Не только это, но IntelliJ работает просто отлично, а не навсегда индексировать.

После консультации с другом я узнал, что в Arch Linux система ddd регистрирует дамп памяти процесса каждый раз, когда возникает segfault, за исключением случаев, когда отладчик подключен. strace считается отладчиком. Arch избивала мои диски, когда они сохраняли протоколирование дампов памяти из-за всех segfaults, поэтому почему индексация занимала так много времени, потому что она сражалась за диск ввода/вывода.

Моим решением на данный момент является просто запустить IntelliJ под strace. Тем не менее, я буду изучать этот вопрос, так как я не думаю, что java должно быть так сильно искажено.

Ответ 3

У меня была эта проблема также с версией 2016.2 в Mac OS X. Мне пришлось сделать силовое завершение для завершения приложения, а затем я удалил папку .idea. В следующий раз, когда я запустил IntelliJ, все работало нормально, у него не было проблем с индексированием проекта.

Ответ 4

изменить Intellij [VERSION]/bin/idea.properties, set idea.max.intellisense.filesize=50

обновление: Intellij пропустит индексные файлы размером более 50 кб. Попробуйте это, если у вас много библиотек или много больших файлов (слишком много символов в одной строке или слишком много строк)

Ответ 5

Выберите Справка → Настройки журнала отладки...

Добавьте следующую строку (обратите внимание на главный символ #)

# com.intellij.util.indexing: след

Перезапустите IDE (не нужно отменять кеш, поскольку это приведет к тому, что он начнется с нуля, а при перезагрузке с момента сбоя, для меня, как я уже сообщал, файл проблемы сразу после перезапуска):

Планирование индексирования файла://C:/dev/tools/ruby/lib/ruby/2.2.0/x64-mingw32/win32ole.so по запросу индекса Stubs

Наш проект не использует win32ole, поэтому я переместил файл в безопасное место и перезапустил мою среду IDE... Bingo, проблема исчезла, индексирование, наконец, завершилось после почти 1 года эффективного использования intellij в качестве чуть более умного, блокнот рубиновый редактор.

Ответ 7

В моем случае я обнаружил, что Intellij на самом деле пытается проиндексировать каталог на 50 ГБ с журналами, которые были под корнем проекта. Убедитесь, что если у вас есть такой каталог, он помечен как "Исключен" в IDE.

Вы можете увидеть, какой файл в настоящее время индексируется в среде IDE, в окне "Состояние индексации" (для этого нажмите на сообщение индексации на панели инструментов). Возможно, вам придется увеличить это окно, чтобы увидеть полный путь индексируемого файла.

Ответ 8

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

Сделать это:

  1. в списке каталогов проекта щелкните правой кнопкой мыши папку, которую вы хотите исключить
  2. Отметить каталог как
  3. не входит

Ответ 9

У меня была та же проблема с IntelliJ 2017.3.2. Когда я нажал на индикатор прогресса индексирования, я заметил, что он был висел в каталоге в моем каталоге сборки. Когда я выполнил очистку gradlew, которая удалила этот каталог, тогда индексирование могло продолжаться.

Ответ 10

Я столкнулся с этой проблемой и разрешил ее:

  • удалить идею
  • удалите все файлы и директории, которые называют regex 'jetbrain' и 'IntelliJ' на моем компьютере (Mac mini).
  • затем установите идею

Я также пытаюсь просто удалить файлы кэша идей, это не сработает.

Ответ 11

Я смог решить эту проблему, удалив все мои "целевые" папки из моего проекта.