web-dev-qa-db-ja.com

IntelliJ IDEAが「インデックス作成」にかかっているのはなぜですか?

Arch Linux、i7-5930k 6コアCPU、および64GBのDDR4 RAMで実行しています。IntelliJIDEA 14を使用しています。

IDEAは数日前にうまく機能していましたが、ある日、プロジェクトを開いた後、「インデックス作成」段階で突然ハングし始めました。 IDEAを更新せず、プロジェクトについて何も変更はありませんでした。IDEのUIは、プロジェクトを開いた後にハングします。 IDEがさらに数分間再びフリーズする前に、フリーズが解除され、プログレスバーが少し前方にクロールされます。これは、15分から1時間の間、繰り返し発生します。最終的にインデックス作成が終了し、その時点でさらに5〜10分間何もせずにハングし、最終的にロックを解除して開発できるようになります。

これが行われている間、私のシステムはかなり反応しません-Firefoxのタブの切り替えに時間がかかり、スクロールが遅くなります。新しいターミナルウィンドウを開くには時間がかかります。一般に、ウィンドウの切り替えには時間がかかります。 htopでは、CPUコアの1つが100%でロードされ、残りは通常の負荷で、約6GBのRAMが使用されます(このシステムがアイドル状態。)

私が試したものの、助けにはならなかったもの:

  • キャッシュフォルダーを削除する
  • 〜/ .IntelliJIDEA14フォルダー全体を削除する
  • IntelliJパッケージを再インストールする
  • JetBrainsのサイトから手動でIntelliJをダウンロードし、Downloadsフォルダーから実行します(Arch AURパッケージに問題があるかどうかを確認します)
  • 組み込みツールではなく、インポートにシステムJVMおよびMavenを使用するようにIntelliJを構成します
  • 複数の異なるプロジェクトを開く(最初に問題を経験したプロジェクトだけでなく)

この問題は本当に私のワークフローを傷つけています。誰かがこれに対する解決策を持っているなら、私は非常に素晴らしいでしょう。

43
AppleDash

私はついにそれを理解しました。解決策は...むしろ奇妙でした。 TL; DR:straceの下で実行します。より詳細な説明についてはお読みください。

straceの下でIntelliJを実行して、ファイルシステムのボトルネックであるかどうかを判断するために開いているファイルを確認することにしました。

これは非常に奇妙な結果をもたらしました:straceはほぼ一定のセグメンテーション違反のストリームを吐き出していました。それだけでなく、IntelliJは順調に実行され、インデックス作成に永久に時間がかかりませんでした。

友人と相談した後、Arch Linuxでは、segfaultが発生するたびにsystemdがプロセスのメモリのダンプを記録することを学びましたデバッガーが接続されている場合を除くstraceはデバッガーと見なされます。すべてのセグメンテーション違反が原因でメモリダンプのログを記録し続けたときにArchがディスクをスラッシングしていました。そのため、ディスクI/Oのためにインデックス付けに時間がかかっていました。

現時点での私の解決策は、IntelliJをstraceの下で実行することです。ただし、Javaがそれほどセグメンテーション違反になるとは思わないため、この問題をさらに調査します。

20
AppleDash

キャッシュの無効化とIntelliJの再起動 を試してください。

Fileメニューで、Invalidate Caches/Restart ...および次に、Invalidate and Restartボタンをクリックします。

42
Motti

intellij [バージョン] /bin/idea.propertiesを編集し、idea.max.intellisense.filesize=50

更新: Intellijは、サイズが50 kbを超えるインデックスファイルをスキップします。多数のライブラリまたは多数の大きなファイルがある場合は、これを試してください(1行または行が多すぎる)

12
BuffK

Mac OS Xのバージョン2016.2でもこの問題が発生しました。アプリケーションを終了するために強制終了しなければならなかったため、.ideaフォルダーを削除しました。次回IntelliJを起動したとき、すべてが正常に機能し、プロジェクトのインデックス作成に問題はありませんでした。

8
The Rockncoder

[ヘルプ]-> [デバッグログ設定]を選択します。

次の行を追加します(先頭の#記号に注意してください)

#com.intellij.util.indexing:trace

IDEを再起動します(キャッシュを無効にする必要はありません。キャッシュを最初から開始しますが、失敗したところから再起動すると、とにかく再起動するとすぐに問題ファイルが報告されます)。

インデックススタブのリクエストによるfile:// C:/dev/tools/Ruby/lib/Ruby/2.2.0/x64-mingw32/win32ole.soのインデックス作成のスケジューリング

私たちのプロジェクトはwin32oleを使用しないため、ファイルを安全な場所に移動してIDEを再起動しました。ビンゴ、問題がなくなり、メモ帳よりもわずかにスマートなintellijを効果的に使用してほぼ1年でインデックス作成がついに完了しましたRubyエディター。

5
maaxiim

私の場合、Intellijは実際にプロジェクトのルートの下にあるログで50GBのディレクトリをインデックス付けしようとしていることがわかりました。そのようなディレクトリがある場合は、IDEで「除外」としてマークされていることを確認してください。

IDEは現在、インデックス作成ステータスウィンドウでアクセスできます(ツールバーのインデックス作成メッセージをクリックしてアクセスします)。このウィンドウを拡大して、現在インデックス付けされているファイル。

1
dux2

PhpStormでは、これを解決したのは、インデックスからインデックスを作成する必要のないフォルダ(特に、ベンダーフォルダ、キャッシュフォルダ、数千の画像を含むいくつかのアセットフォルダ)を除外することでした。すぐにそれは進歩を始め、完了しました。

これをする:

  1. プロジェクトディレクトリリストで、除外するフォルダーを右クリックします。
  2. ディレクトリに名前を付ける
  3. 除外されました
1
Andrew

いくつかのScalaプロジェクトで過去に同じ問題が発生しました。IDEA 16 EAP(- https://confluence.jetbrains.com/display/IDEADEV/IDEA + 16 + EAP )そして問題はなくなりました。

1

IntelliJ 2017.3.2でも同じ問題が発生しました。インデックス作成プログレスバーをクリックすると、ビルドディレクトリ内のディレクトリにハングしていることに気付きました。そのディレクトリを削除したgradlew cleanを実行すると、インデックス作成を続行できました。

0
seonghuhn

私はこの問題に遭遇し、解決しました:

  1. アイデアを削除
  2. コンピューター(Mac mini)でregex 'jetbrain'および 'IntelliJ'という名前のすべてのファイルとディレクトリを削除します。
  3. その後、アイデアをインストールします

また、アイデアキャッシュファイルを削除してみますが、動作しません。

0
user1978965