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é:
Cette question nuit vraiment à mon flux de travail. Si quelqu'un avait une solution à ce problème, je serais très reconnaissant.
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.
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.
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.
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)
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 .
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.
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:
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.
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.
J'ai rencontré ce problème et je l'ai résolu:
J'essaie aussi de supprimer les fichiers de cache d'idées, cela ne fonctionne pas.