Warum hängt IntelliJ IDEA an „Indexing“?

Lesezeit: 8 Minuten

Ich verwende Arch Linux, eine i7-5930k 6-Kern-CPU und 64 GB DDR4-RAM und verwende IntelliJ IDEA 14.

IDEA hat vor einigen Tagen noch gut funktioniert, aber eines Tages fing es plötzlich an, nach dem Öffnen eines Projekts während der “Indizierung”-Phase zu hängen. Ich habe IDEA nicht aktualisiert und an meinen Projekten hat sich nichts geändert. Die Benutzeroberfläche der IDE hängt nach dem Öffnen des Projekts, wobei nur ein winziger kleiner Teil des Fortschrittsbalkens für die „Indizierung“ abgeschlossen ist. Etwa alle 5-10 Minuten wird es aufgetaut und der Fortschrittsbalken kriecht ein wenig nach vorne, bevor die IDE wieder für ein paar Minuten einfriert. Dies geschieht wiederholt zwischen 15 Minuten und einer Stunde, bis die Indizierung endgültig abgeschlossen ist. An diesem Punkt hängt es weitere 5-10 Minuten lang nichts, bevor es schließlich entsperrt wird und mir erlaubt, mich zu entwickeln.

Während dies geschieht, reagiert mein System ziemlich nicht – Firefox-Tabs brauchen lange zum Wechseln und das Scrollen in ihnen ist verzögert. Das Öffnen eines neuen Terminalfensters dauert sehr lange. Das Wechseln von Fenstern dauert im Allgemeinen eine Weile. Im htopeiner meiner CPU-Kerne ist zu 100 % ausgelastet, während der Rest normal ausgelastet ist, und etwa 6 GB RAM verwendet werden (ziemlich normale Auslastung, wenn dieses System im Leerlauf ist).

Dinge, die ich versucht habe, die nicht geholfen haben:

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

Dieses Problem beeinträchtigt meinen Workflow wirklich. Wenn jemand eine Lösung dafür hat, wäre ich sehr dankbar.

  • Hat sich sonst noch etwas an deiner Maschine geändert? Neues jvm/jdk? Neue Abhängigkeiten / Gläser in Ihrem Projekt? Wird nur dieses eine Projekt nicht indexiert oder alle?

    – Wikingersteve

    13. September 2015 um 14:49 Uhr

  • Befindet sich Ihr Projekt in einem Netzwerkdateisystem? Haben Sie eine andere Version von IntelliJ ausprobiert? Gibt es etwas Interessantes in den Logs? (wahrscheinlich ~/.IntelliJ/system/log)

    – Bastien Jansen

    13. September 2015 um 15:05 Uhr

  • @vikingsteve Soweit mir bekannt ist, nichts anderes, und wie ich in meiner Frage sagte, habe ich verschiedene Projekte ausprobiert. Es hat funktioniert, ich habe IntelliJ geschlossen, eine Weile später neu gestartet, und als ich IntelliJ nach dem Neustart wieder geöffnet habe, hat es damit begonnen.

    – AppleDash

    13. September 2015 um 15:07 Uhr

  • @Nebelmann Nein, es ist lokal auf einem SSD-RAID-Array, das ich mit 1,2 GB / s Lesen bewertet habe. Ich habe gerade das IntelliJ IDEA 15 EAP ausprobiert und es zeigt dies auch. Die Protokolle sagen nicht viel aus, hier ist das letzte Bit (das einzige relevante Bit, das ich in den letzten 100 Zeilen finden kann): 2015-09-13 10:50:28,495 [ 13439] INFO - indexing.UnindexedFilesUpdater - Indexable files iterated in 5192 ms 2015-09-13 10:50:28,495 [ 13439] INFO - indexing.UnindexedFilesUpdater - Unindexed files update started: 62583 files to update

    – AppleDash

    13. September 2015 um 15:09 Uhr


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

In dem Datei Menü, auswählen Caches ungültig machen / neu starten… und klicken Sie dann auf die Ungültig machen und neu starten Taste.

  • Das hat bei mir funktioniert, aber Sie müssen schnell sein, denn wenn Sie nicht schnell genug zum Menü gelangen, friert es wieder ein.

    – GameSalutes

    29. Juni 2017 um 20:54 Uhr

  • Meine IntelliJ IDEA 2020.2 geheilt

    – Ilya Serbis

    18. November 2020 um 19:20 Uhr

  • Das Invalidieren von Caches und das Neustarten der intellij ide-Lösung hat bei mir funktioniert.

    – Dynamo

    10. August 2021 um 6:17 Uhr


  • Hat auch an 2021.1 gearbeitet

    – Alan Telles

    5. Oktober 2021 um 12:42 Uhr

  • Zusätzlich: Es sind Optionen zum Invalidieren des Caches verfügbar. Markieren Sie nur “Heruntergeladene freigegebene Indexe löschen” war genug

    – Alan Telles

    5. Oktober 2021 um 12:57 Uhr

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

Ich bin darauf gestoßen, als ich mich entschied, IntelliJ darunter laufen zu lassen strace um zu sehen, welche Dateien geöffnet wurden, um festzustellen, ob es sich um einen Dateisystemengpass handelte oder nicht.

Das brachte mir einige sehr seltsame Ergebnisse: strace spuckte einen nahezu konstanten Strom von Segfaults aus. Nicht nur das, IntelliJ lief einwandfrei und brauchte nicht ewig, um zu indizieren.

Nachdem ich mich mit einem Freund beraten hatte, erfuhr ich, dass systemd unter Arch Linux jedes Mal, wenn ein Segfault auftritt, einen Dump des Speichers eines Prozesses protokolliert. außer wenn ein Debugger angehängt ist. strace gilt als Debugger. Arch hat meine Festplatten verwüstet, als es aufgrund all der Segfaults ständig Speicherauszüge protokollierte, weshalb die Indizierung so lange dauerte, weil es um Festplatten-I/O kämpfte.

Meine Lösung für den Moment besteht darin, IntelliJ einfach unter auszuführen strace. Ich werde mich jedoch weiter mit dem Thema befassen, da ich nicht denke java sollte so viel segfaulting sein.

Benutzer-Avatar
BuffK

Intellij bearbeiten[VERSION]/bin/idea.properties, festgelegt idea.max.intellisense.filesize=50

aktualisieren:
Intellij überspringt Indexdateien, die größer als 50 KB sind. Probieren Sie dies aus, wenn Sie viele Bibliotheken oder viele große Dateien haben (zu viele Zeichen in einer Zeile oder zu viele Zeilen).

  • Während Ihr Hinweis die Frage beantworten könnte, gibt er absolut keinen Hinweis darauf, warum er das Problem lösen könnte. Dies macht die Antwort (wenn überhaupt) für andere weniger nützlich. Erwägen Sie also bitte, Ihren Hinweis zu erläutern.

    – rpi

    4. Juni 2016 um 11:37 Uhr

  • jetbrains.com/help/idea/…

    – Mähwalker

    30. Oktober 2020 um 3:30 Uhr

  • Dies hat es für mich behoben, im Gegensatz zu Cache-Invalidierung, Neustarts und Löschen von .idea! Beachten Sie, dass ich auf dem Mac “Paketinhalt anzeigen” der Anwendung musste, um zur .properties-Datei zu gelangen.

    – Schwänze

    16. September 2021 um 15:46 Uhr

  • Meins war 2500, ich habe es auf 1000 gesetzt, jetzt kann mein PHPStorm die PHP-App auf WSL2 indizieren. Danke!

    – Yohanes Pradono

    6. Januar um 18:40 Uhr

Ich hatte dieses Problem auch mit Version 2016.2 unter Mac OS X. Ich musste das Beenden erzwingen, um die Anwendung zu beenden, und dann habe ich den .idea-Ordner gelöscht. Als ich das nächste Mal IntelliJ startete, funktionierte alles einwandfrei, es gab kein Problem, das Projekt zu indizieren.

Benutzer-Avatar
Khusrav

Ich bin mit einem ähnlichen Problem mit dem neuesten festgefahren IntelliJ-Idee 2019.3, vielleicht hilft es ja. Bei mir lag das Problem bei einem der Plugins, das Deinstallieren/Neuinstallieren, das Reinigen von Caches hat nicht geholfen. Meine Schritte waren:

  1. Töten Sie intellij, starten Sie es von vorne
  2. Wenn es startet und dabei ist, ein Projekt zu laden, seien Sie schnell und brechen Sie das Öffnen des Projekts ab. Auf diese Weise erhalten Sie am Ende ein kleines Fenster mit einer Liste der zuvor geöffneten Projekte und einigen Menüpunkten.
  3. Menü öffnen > Plugins, alle deaktivieren
  4. Starten Sie intellij idea neu, öffnen Sie ein beliebiges Projekt.

Wenn Schritt 4 oben erfolgreich ist (was mir passiert ist), versuchen Sie nacheinander, die Plugins zu aktivieren, um zu sehen, welches einen Fehler verursacht. Für mich war es Kubernetes Plugin aus JetBrains.

  • Meins blieb hängen, wenn das Laravel-Plugin aktiviert war, ich musste es entfernen

    – 4 gegebenN

    22. Februar 2021 um 17:04 Uhr

Benutzer-Avatar
maaxim

Wählen Sie Hilfe -> Debug-Protokolleinstellungen…

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

#com.intellij.util.indexing:trace

Starten Sie die IDE neu (Sie müssen den Cache nicht ungültig machen, da dies dazu führt, dass sie von Grund auf neu gestartet wird, während ein Neustart ab dem Fehlerpunkt für mich sowieso die Problemdatei gemeldet hat, sobald ich neu gestartet habe):

Planung der Indexierung von file://C:/dev/tools/ruby/lib/ruby/2.2.0/x64-mingw32/win32ole.so auf Anfrage von Index Stubs

Unser Projekt verwendet win32ole nicht, also habe ich die Datei an einen sicheren Ort verschoben und meine IDE neu gestartet … Bingo, Problem weg, Indexierung endlich abgeschlossen, nachdem ich Intellij fast 1 Jahr lang effektiv als Ruby-Editor verwendet hatte, der etwas intelligenter als Notepad war .

  • Meins blieb hängen, wenn das Laravel-Plugin aktiviert war, ich musste es entfernen

    – 4 gegebenN

    22. Februar 2021 um 17:04 Uhr

Benutzer-Avatar
dux2

In meinem Fall habe ich herausgefunden, dass Intellij tatsächlich versucht, ein 50-GB-Verzeichnis mit Protokollen zu indizieren, das sich im Stammverzeichnis des Projekts befand. Stellen Sie sicher, dass ein solches Verzeichnis in der IDE als „Ausgeschlossen“ gekennzeichnet ist.

Sie können sehen, welche Datei die IDE gerade indiziert, im Indexierungsstatusfenster (Zugriff durch Klicken auf die Indizierungsmeldung in der Symbolleiste). Möglicherweise müssen Sie dieses Fenster vergrößern, um den vollständigen Pfad der aktuell indizierten Datei anzuzeigen.

  • Dies sollte die akzeptierte Antwort sein, ich hatte genau dieses Problem … riesige Protokolle in einem Unterverzeichnis, die dazu führen, dass die Indizierung ewig dauert. Auch Neustart und Cache löschen hat hier nicht geholfen.

    – xxfelixxx

    23. Juli 2020 um 9:59 Uhr

1121340cookie-checkWarum hängt IntelliJ IDEA an „Indexing“?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy