wake-up-neo.net

Warum ist IntelliJ IDEA hängen an "Indizierung"?

Ich arbeite unter Arch Linux, einer i7-5930k 6-Core-CPU und 64 GB DDR4-RAM und verwende IntelliJ IDEA 14.

IDEA hat vor einigen Tagen gut für mich funktioniert, aber eines Tages begann es plötzlich nach der Eröffnung eines Projekts während der "Indexing" -Phase zu hängen. Ich habe IDEA nicht aktualisiert und an meinen Projekten hat sich nichts geändert. Die Benutzeroberfläche der IDE bleibt hängen, nachdem das Projekt geöffnet wurde. Der Fortschrittsbalken für die "Indizierung" ist nur ein kleines Stückchen. Alle 5-10 Minuten wird es nicht mehr Freeze und der Fortschrittsbalken kriecht ein wenig vorwärts, bevor die IDE wieder für einige Minuten einfriert. Dies geschieht wiederholt zwischen 15 Minuten und einer Stunde, bis die Indexierung abgeschlossen ist. Dann hängt es weitere 5-10 Minuten lang, bis es endgültig freigegeben wird und mich weiterentwickeln kann.

Während dies geschieht, reagiert mein System ziemlich nicht - Firefox-Registerkarten brauchen lange, um zu wechseln, und das Scrollen in ihnen ist verzögert. Das Öffnen eines neuen Terminalfensters dauert lange. Das Wechseln der Fenster dauert im Allgemeinen eine Weile. In htop ist einer meiner CPU-Kerne zu 100% geladen, während der Rest eine normale Last hat und ungefähr 6 GB RAM verwendet werden (ziemlich normale Last, wenn dieses System im Leerlauf ist).

Dinge, die ich ausprobiert habe, haben nicht geholfen:

  • Cache-Ordner löschen
  • Löschen Sie den gesamten Ordner ~/.IntelliJIDEA14
  • Installieren Sie das IntelliJ-Paket erneut
  • Laden Sie IntelliJ manuell von der JetBrains-Site herunter und führen Sie es aus meinem Download-Ordner aus (um zu sehen, ob mit dem Arch AUR-Paket ein Fehler aufgetreten ist).
  • Konfigurieren Sie IntelliJ so, dass meine System-JVM und Maven anstelle der eingebetteten Tools zum Importieren verwendet werden
  • Mehrere verschiedene Projekte öffnen (nicht nur das, bei dem ich das Problem ursprünglich erlebt habe.)

Dieses Problem schadet meinem Workflow wirklich, wenn jemand eine Lösung dafür hat, wäre ich sehr dankbar.

36
AppleDash

Ich habe es endlich herausgefunden. Die Lösung war ... Seltsam. TL; DR: Führen Sie es unter strace aus. Lesen Sie weiter für eine detailliertere Erklärung.

Ich bin darauf gestoßen, als ich beschloss, IntelliJ unter strace auszuführen, um zu sehen, welche Dateien geöffnet wurden, um festzustellen, ob es sich um einen Engpass im Dateisystem handelt oder nicht.

Dies brachte mir einige sehr seltsame Ergebnisse: strace spuckte einen fast konstanten Strom von Segfaults aus. Nicht nur das, aber IntelliJ lief gut, er brauchte nicht ewig, um zu indexieren.

Nach Rücksprache mit einem Freund erfuhr ich, dass bei Arch Linux jedes Mal, wenn ein Segfault auftritt, systemd einen Speicherauszug eines Prozesses protokolliert, außer wenn ein Debugger angeschlossen ist . strace wird als Debugger betrachtet. Arch hat meine Festplatten platt gemacht, als es wegen all der Segmente ständig Speicherabbilder protokollierte. Deshalb dauerte die Indexierung so lange, weil sie um Festplatten-E/A kämpfte.

Meine Lösung fürs Erste ist, IntelliJ einfach unter strace auszuführen. Ich werde jedoch weiter auf das Problem eingehen, da ich nicht glaube, dass Java so viel segfaulting sein sollte.

17
AppleDash

Try Den Cache ungültig machen und IntelliJ neu starten.

Wählen Sie im Menü DateiUngültige Caches/Neustart ... aus und klicken Sie auf die Schaltfläche Invalidate and Restart.

38
Motti

Ich hatte dieses Problem auch mit Version 2016.2 unter Mac OS X. Ich musste das Programm beenden, um die Anwendung zu beenden. Dann löschte ich den .idea-Ordner. Als ich das nächste Mal IntelliJ startete, funktionierte alles gut, es gab kein Problem, das Projekt zu indexieren. 

7
The Rockncoder

edit Intellij [VERSION] /bin/idea.properties, set idea.max.intellisense.filesize=50 

update: Intellij überspringt Indexdateien, die größer als 50 KB sind.

6
BuffK

Wählen Sie Hilfe -> Debugprotokolleinstellungen ...

Fügen Sie die folgende Zeile hinzu (beachten Sie das führende # -Symbol)

# com.intellij.util.indexing: trace

Starten Sie die IDE erneut (Sie müssen den Cache nicht ungültig machen, da dies zu einem Neustart führen wird, während der Neustart vom Fehlerpunkt aus für mich ohnehin die Problemdatei gemeldet hat, sobald ich einen Neustart durchgeführt habe):

Planen der Indexierung der Datei: // C: /dev/tools/Ruby/lib/Ruby/2.2.0/x64-mingw32/win32ole.so auf Anforderung des Index Stubs 

In unserem Projekt wird win32ole nicht verwendet, also habe ich die Datei an einen sicheren Ort verschoben und meine IDE neu gestartet . 

5
maaxiim

In meinem Fall habe ich herausgefunden, dass Intellij tatsächlich versucht, ein 50GB-Verzeichnis mit Protokollen zu indizieren, die sich unter dem Stamm des Projekts befanden. Stellen Sie sicher, dass ein solches Verzeichnis in der IDE als "ausgeschlossen" markiert ist.

Die Datei, die IDE derzeit indiziert, wird im Fenster "Indexierungsstatus" angezeigt (Zugriff durch Klicken auf die Indexierungsmeldung in der Symbolleiste). Möglicherweise müssen Sie dieses Fenster vergrößern, um den vollständigen Pfad der aktuell indizierten Datei zu sehen.

1
dux2

In PhpStorm wurde das Problem gelöst, indem Ordner ausgeschlossen wurden, deren Indexierung nicht erforderlich war (insbesondere der Herstellerordner, ein Cache-Ordner und einige Asset-Ordner, die Tausende von Bildern enthielten). Sofort machte es Fortschritte und wurde abgeschlossen.

Um dies zu tun:

  1. klicken Sie in der Projektverzeichnisliste mit der rechten Maustaste auf den Ordner, den Sie ausschließen möchten
  2. Verzeichnis markieren als
  3. Ausgeschlossen 
1
Andrew

Hatte das gleiche Problem in der Vergangenheit bei einem Scala-Projekt. Ich habe IDEA 16 EAP ( https://confluence.jetbrains.com/display/IDEADEV/IDEA+16+EAP ) installiert und das Problem ist behoben.

1

Ich hatte das gleiche Problem mit IntelliJ 2017.3.2. Als ich auf die Fortschrittsleiste für die Indizierung geklickt habe, fiel mir auf, dass sie in einem Verzeichnis in meinem Build-Verzeichnis aufgehängt war. Als ich eine gradlew clean durchführte, die das Verzeichnis entfernte, konnte die Indizierung fortgesetzt werden.

0
seonghuhn

Ich bin auf dieses Problem gestoßen und habe es gelöst:

  1. idee entfernen
  2. lösche alle Dateien und Verzeichnisse mit dem Namen regex ' jetbrain ' und ' IntelliJ ' in meinem Computer (Mac mini)
  3. dann installiere idee

Ich versuche auch, Ideen-Cache-Dateien zu löschen, es funktioniert nicht.

0
user1978965