web-dev-qa-db-fra.com

Pourquoi IntelliJ IDEA suspendu à "l'indexation"?

Je suis sous Arch Linux, sur un processeur i7-5930k à 6 cœurs et sur 64 Go de RAM DDR4, et j'utilise IntelliJ IDEA 14.

IDEA fonctionnait très bien pour moi il y a plusieurs jours, mais un jour, soudainement, il a été suspendu après l'ouverture d'un projet, au stade "Indexation". Je n'ai pas mis à jour IDEA et rien n'a changé pour mes projets. L'interface utilisateur de l'EDI se bloque après avoir ouvert le projet, avec juste un tout petit fragment de la barre de progression pour "Indexation" terminée. Toutes les 5 à 10 minutes environ, il se débloque et la barre de progression avance un peu, avant que le IDE ne gèle à nouveau pendant quelques minutes. Cela se répète entre 15 minutes et une heure, jusqu'à ce que l'indexation soit terminée, puis 5 à 10 minutes plus tard, il ne reste plus rien avant de se débloquer et de me développer.

Bien que cela se produise, mon système ne répond pas suffisamment - les onglets de Firefox mettent beaucoup de temps à basculer, et leur défilement est lent. L'ouverture d'une nouvelle fenêtre de terminal prend beaucoup de temps. Changer de fenêtre en général prend un certain temps. Dans htop, l'un de mes cœurs de processeur est chargé à 100%, tandis que les autres ont une charge normale et environ 6 Go de RAM sont utilisés (charge relativement normale lorsque ce système est inactif.)

Les choses que j'ai essayées qui n'ont pas aidé:

  • Supprimer le dossier des caches
  • Supprimer tout le dossier ~/.IntelliJIDEA14
  • Réinstaller le package IntelliJ
  • Téléchargez manuellement IntelliJ à partir du site de JetBrains et exécutez-le à partir de mon dossier Téléchargements (pour voir s'il y a un problème avec le paquet Arch AUR)
  • Configurer IntelliJ pour utiliser la machine virtuelle JVM de mon système et Maven pour importer au lieu de ses outils intégrés
  • Ouverture de plusieurs projets différents (pas seulement celui sur lequel j'ai initialement rencontré le problème.)

Cette question nuit vraiment à mon flux de travail. Si quelqu'un avait une solution à ce problème, je serais très reconnaissant.

36
AppleDash

Je l'ai enfin compris. La solution était ... Plutôt étrange. TL; DR: exécutez-le sous strace. Lisez la suite pour une explication plus détaillée.

Je suis tombé dessus quand j'ai décidé de lancer IntelliJ sous strace pour voir quels fichiers il ouvrait pour déterminer s'il s'agissait ou non d'un goulot d'étranglement du système de fichiers.

Cela m'a donné des résultats très étranges: strace crachait un flot presque constant de segfaults. Non seulement cela, mais IntelliJ fonctionnait très bien, ne prenant pas une éternité pour indexer.

Après avoir consulté un ami, j'ai appris que sur Arch Linux, systemd enregistre un vidage de la mémoire d'un processus chaque fois qu'un segfault se produit, sauf lorsqu'un débogueur est connecté . strace est considéré comme un débogueur. Arch se débattait avec mes disques quand il continuait à enregistrer des vidages de mémoire en raison de tous les segfaults, d'où la lenteur de l'indexation, car il se battait pour des E/S de disque.

Ma solution pour le moment consiste simplement à exécuter IntelliJ sous strace. Je vais toutefois examiner la question plus en profondeur, car je ne pense pas que Java devrait être aussi souvent défectueux.

17
AppleDash

Essayez Invalider le cache et redémarrer IntelliJ .

Dans le menu Fichier, sélectionnez Invalidate Caches/Restart ... puis cliquez sur le bouton Invalidate and Restart.

38
Motti

J'avais également ce problème avec la version 2016.2 sur Mac OS X. Je devais arrêter de force pour mettre fin à l'application, puis j'ai supprimé le dossier .idea. La prochaine fois que j'ai lancé IntelliJ, tout fonctionnait bien, il n'y avait aucun problème à indexer le projet. 

7
The Rockncoder

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

update: Intellij ignorera les fichiers d'index dont la taille est supérieure à 50 Ko. ceci si vous avez plusieurs bibliothèques ou plusieurs gros fichiers (trop de caractères d'une ligne ou trop de lignes)

6
BuffK

Sélectionnez Aide -> Paramètres du journal de débogage ...

Ajouter la ligne suivante (notez le symbole # en tête)

# com.intellij.util.indexing: trace

Relancez le IDE (il n'est pas nécessaire d'invalider le cache car cela le ferait recommencer à zéro, alors que le redémarrage depuis le point d'échec, pour moi de toute façon, a signalé le fichier problème dès que j'ai redémarré):

Ordonnancement de l'indexation du fichier: // C: /dev/tools/Ruby/lib/Ruby/2.2.0/x64-mingw32/win32ole.so à la demande de Stubs d'index 

Notre projet n'utilisant pas win32ole, j'ai donc déplacé le fichier dans un endroit sûr et redémarré mon IDE ... Bingo, le problème est parti, l'indexation est finalement terminée après presque 1 an d'utilisation de intellij en tant qu'éditeur Ruby légèrement plus intelligent que le bloc-notes . 

5
maaxiim

Dans mon cas, j'ai découvert qu'Intellij essayait en réalité d'indexer un répertoire de 50 Go avec des journaux qui se trouvaient sous la racine du projet. Assurez-vous que si vous avez un tel répertoire, il est marqué comme "Exclus" dans l'EDI.

Vous pouvez voir quel fichier IDE indexe actuellement dans la fenêtre Statut d'indexation (pour y accéder, cliquez sur le message d'indexation dans la barre d'outils). Vous devrez peut-être agrandir cette fenêtre pour voir le chemin complet du fichier en cours d'indexation.

1
dux2

Dans PhpStorm, ce qui résolvait cela pour moi, c'était d'exclure les dossiers pour lesquels je n'avais pas besoin d'être indexés (en particulier le dossier du vendeur, un dossier des caches et quelques dossiers de fichiers contenant des milliers d'images). Instantanément, il a commencé à progresser et à se terminer.

Pour faire ça:

  1. dans la liste des répertoires du projet, cliquez avec le bouton droit sur le dossier que vous souhaitez exclure
  2. Marquer le répertoire comme
  3. Exclu 
1
Andrew

A eu le même problème dans le passé sur certains projets Scala. J'ai installé IDEA 16 EAP ( https://confluence.jetbrains.com/display/IDEADEV/IDEA+16+EAP ) et le problème a disparu.

1
Fabrizio Fortino

J'ai eu le même problème avec IntelliJ 2017.3.2. Lorsque j'ai cliqué sur la barre de progression de l'indexation, j'ai remarqué qu'elle était bloquée dans un répertoire de mon répertoire de construction. Quand j'ai fait un nettoyage propre qui a supprimé ce répertoire, l'indexation a pu continuer.

0
seonghuhn

J'ai rencontré ce problème et je l'ai résolu:

  1. enlever l'idée
  2. supprime tous les fichiers et répertoires portant le nom regex ' jetbrain ' et ' IntelliJ ' sur mon ordinateur (Mac mini)
  3. puis installe l'idée

J'essaie aussi de supprimer les fichiers de cache d'idées, cela ne fonctionne pas.

0
user1978965