Intelli J IDEA永远需要更新索引


112

Intelli J花大量时间(近12小时)来更新项目索引是否正常?我刚在计算机上安装了Intelli J,并导入了一个相当大的Maven项目(13k +个文件)。

我知道该项目很大,但是我整夜都没有打开计算机,早晨醒来时,Intelli J仍未完成文件索引的更新,这使得自从弹出菜单后,您无法执行任何操作。标题“更新索引”一直挂在屏幕中间。


2
您已为IntelliJ分配了多少内存?我没有任何项目具有那么多的源文件,但是我发现它不太可能花那么长时间。
戴夫牛顿

@DaveNewton我为此分配了512M。
0x56794E 2013年

1
@abcXYZ没有足够的距离;我什至不会尝试1G以下的任何东西。检查您是否在虚拟机上运行。
戴夫牛顿

您应该联系JetBrains支持。他们甚至在支持CE用户方面都比较擅长解决此类问题。
noahlz 2013年

1
有时,您可以从命令行启动intellij。它可能要求git凭证。
GabLeRoux

Answers:


111

论坛中针对不同的IntelliJ版本有几个答案,这是我尝试过的答案(IntelliJ 13)。

  • 给更多的记忆。对“更新索引”没有帮助
  • 在项目中删除.idea和iml。没有帮助。

最后,解决我的“更新索引”问题的是:

  • 删除用户/.IntellIJIdea13/system/中的“缓存”文件夹

64
谢谢!我想File / Invalidate Caches也一样。帮助过我。
帕维尔·弗拉索夫

1
你为我节省了很多时间!谢谢
Daria

你是救星。
blackiii

我的intellij想法实际上是在我使缓存无效之后开始更新索引,因此我最终等待了一个多小时才真正开始,但是没关系。
GH 9

68

我尝试删除缓存,它可以完美运行。感谢您的解决方案的朋友。

只是:

  1. 打开IntelliJ IDEA
  2. 选择文件菜单
  3. 选择无效的缓存/重新启动...菜单。
    选择后,您会看到一个弹出窗口,其中包含许多选项。
  4. 选择“ 无效并重新启动”
    ,然后确保已保存所有更改,否则可能会删除一些未保存的更改。

按下该按钮后,IntelliJ将重新启动,然后您可以看到所有索引编制都非常快。


这些建议对我没有任何影响。我有一个由75个模块,数千个源文件和其他随机混乱组成的怪异事物。无论如何,我也会在家里尝试。谢谢。
理查德·戈麦斯

像魅力一样工作。谢谢
Alex Theedom '17

14

删除库文件夹中的缓存

rm -rv ~/Library/Caches/IdeaIC15/caches/

在Mac OSX上,缓存的位置为 ~/Library/Caches


我想,这个位置〜/ Library可能仅在您的工作站上有效。
理查德·戈麦斯

编辑。感谢您的建议
Shubham Chaudhary

我的情况是我已经安装了Ultimate和Community版本。我首先使用最终版本打开了项目。仅删除缓存对我不起作用。我需要删除缓存并重新启动系统,这可以解决索引编制问题。
米歇尔

3

我在IntelliJ 2017.2.3中遇到了相同的问题-即我的项目将不断更新索引。

我发现我已经超过了我的主目录中的磁盘配额。默认情况下,IntelliJ将索引存储在主目录中,如下所示:

~/.IdeaIC2017.2/system/index/

我的解决方案是:

  1. 退出IntelliJ
  2. 将整个.IdeaIC2017.2目录移动到另一个具有更多空间的挂载:

    mkdir /space/ideaConfig
    mv ~/.IdeaIC2017.2 /space/ideaConfig/IdeaIC
  3. 更新资料 bin/idea.properties以指向新的索引/配置位置:

    idea.config.path=/space/ideaConfig/IdeaIC/config
    idea.system.path=/space/ideaConfig/IdeaIC/system

该问题的其他一些答案可能是由于相同的问题,并被“删除缓存文件夹”,“使缓存无效”等错误地修复,这可能释放了足够的磁盘空间来建立索引。


1

尽管已接受的答案和其他答案可能会解决特定问题,但我发现索引时间长的问题通常是由于存储库包含或链接到包含大量文件的某个目录这一事实所致。通常,这样做是为了进行测试,并且所涉及的目录实际上不是项目的一部分,例如,VCS忽略了该目录。

在建立索引时,IDE不会自动忽略这些目录,但是可以从项目中“排除”该目录。这也将防止索引。


1

我猜Idea不仅仅是在做有用的工作而在收集垃圾。使用G1 GC而不是默认值。

帮助-编辑自定义VM选项

-XX:+UseG1GC

代替

-XX:+UseConcMarkSweepGC

然后重新启动Idea。

缺点:G1尝试在停止进程之前收集垃圾。这太疯狂了,但这就是它的作用。对于具有16G堆的程序,清理需要27分钟。因此,请勿将您的Idea配置为使用16G堆。



0

可能-缓存系统中的旧错误。它在所有版本中都会发生,特别是如果您升级IntelliJ或JDK版本。要解决此问题:1)关闭GUI。2)转到%HOME_DIR%.IntelliJIdeaXXXX \ system \ caches并将其删除3)再次启动GUI。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.