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が使用されます(このシステムがアイドル状態。)
私が試したものの、助けにはならなかったもの:
この問題は本当に私のワークフローを傷つけています。誰かがこれに対する解決策を持っているなら、私は非常に素晴らしいでしょう。
私はついにそれを理解しました。解決策は...むしろ奇妙でした。 TL; DR:strace
の下で実行します。より詳細な説明についてはお読みください。
strace
の下でIntelliJを実行して、ファイルシステムのボトルネックであるかどうかを判断するために開いているファイルを確認することにしました。
これは非常に奇妙な結果をもたらしました:strace
はほぼ一定のセグメンテーション違反のストリームを吐き出していました。それだけでなく、IntelliJは順調に実行され、インデックス作成に永久に時間がかかりませんでした。
友人と相談した後、Arch Linuxでは、segfaultが発生するたびにsystemdがプロセスのメモリのダンプを記録することを学びましたデバッガーが接続されている場合を除く。 strace
はデバッガーと見なされます。すべてのセグメンテーション違反が原因でメモリダンプのログを記録し続けたときにArchがディスクをスラッシングしていました。そのため、ディスクI/Oのためにインデックス付けに時間がかかっていました。
現時点での私の解決策は、IntelliJをstrace
の下で実行することです。ただし、Java
がそれほどセグメンテーション違反になるとは思わないため、この問題をさらに調査します。
キャッシュの無効化とIntelliJの再起動 を試してください。
Fileメニューで、Invalidate Caches/Restart ...および次に、Invalidate and Restartボタンをクリックします。
intellij [バージョン] /bin/idea.propertiesを編集し、idea.max.intellisense.filesize=50
更新: Intellijは、サイズが50 kbを超えるインデックスファイルをスキップします。多数のライブラリまたは多数の大きなファイルがある場合は、これを試してください(1行または行が多すぎる)
Mac OS Xのバージョン2016.2でもこの問題が発生しました。アプリケーションを終了するために強制終了しなければならなかったため、.ideaフォルダーを削除しました。次回IntelliJを起動したとき、すべてが正常に機能し、プロジェクトのインデックス作成に問題はありませんでした。
[ヘルプ]-> [デバッグログ設定]を選択します。
次の行を追加します(先頭の#記号に注意してください)
#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エディター。
私の場合、Intellijは実際にプロジェクトのルートの下にあるログで50GBのディレクトリをインデックス付けしようとしていることがわかりました。そのようなディレクトリがある場合は、IDEで「除外」としてマークされていることを確認してください。
IDEは現在、インデックス作成ステータスウィンドウでアクセスできます(ツールバーのインデックス作成メッセージをクリックしてアクセスします)。このウィンドウを拡大して、現在インデックス付けされているファイル。
PhpStormでは、これを解決したのは、インデックスからインデックスを作成する必要のないフォルダ(特に、ベンダーフォルダ、キャッシュフォルダ、数千の画像を含むいくつかのアセットフォルダ)を除外することでした。すぐにそれは進歩を始め、完了しました。
これをする:
いくつかのScalaプロジェクトで過去に同じ問題が発生しました。IDEA 16 EAP(- https://confluence.jetbrains.com/display/IDEADEV/IDEA + 16 + EAP )そして問題はなくなりました。
IntelliJ 2017.3.2でも同じ問題が発生しました。インデックス作成プログレスバーをクリックすると、ビルドディレクトリ内のディレクトリにハングしていることに気付きました。そのディレクトリを削除したgradlew cleanを実行すると、インデックス作成を続行できました。
私はこの問題に遭遇し、解決しました:
また、アイデアキャッシュファイルを削除してみますが、動作しません。