it-swarm.com.ru

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

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

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

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

То, что я пробовал, не помогло:

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

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

36
AppleDash

Я наконец понял это. Решение было ... довольно странным. TL; DR: запустить его под strace. Продолжайте читать для более подробного объяснения.

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

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

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

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

17
AppleDash

Попробуйте сделать кеш недействительным и перезапустить IntelliJ .

В меню File выберите Invalidate Caches/Restart ..., а затем нажмите кнопку Invalidate and Restart.

38
Motti

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

7
The Rockncoder

редактировать Intellij [VERSION] /bin/idea.properties, set idea.max.intellisense.filesize=50 

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

6
BuffK

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

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

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

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

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

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

5
maaxiim

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

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

1
dux2

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

Сделать это:

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

В прошлом была такая же проблема на каком-то проекте Scala. Я установил IDEA 16 EAP ( https://confluence.jetbrains.com/display/IDEADEV/IDEA+16+EAP ), и проблема исчезла.

1
Fabrizio Fortino

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

0
seonghuhn

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

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

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

0
user1978965