为什么IntelliJ IDEA挂在“索引”上?
提供有关此问题的详细答案,包括引文和为什么您的答案正确的解释。答案不够详细的答案可能会被编辑或删除。
我在Arch Linux,i7-5930k 6核心CPU和64GB DDR4 RAM上运行,并且正在使用IntelliJ IDEA 14。
几天前,IDEA对我来说还算不错,但是有一天,突然间,它在“索引”阶段打开项目后就开始挂起。我没有更新IDEA,并且我的项目没有任何改变。打开项目后,IDE的UI会挂起,进度条中只有一小部分可以完成“索引编制”。每隔5到10分钟左右,它会冻结一次,进度栏会向前爬行一点,然后IDE再次冻结几分钟。这会在15分钟到一个小时之间的任何地方重复发生,直到最终完成索引编制,此后它又挂了5-10分钟,什么也不做,直到最终解锁并让我发展。
发生这种情况时,我的系统反应迟钝-
Firefox选项卡需要很长时间才能切换,滚动它们的时间很长。打开新的终端窗口需要很长时间。切换窗口通常需要一段时间。在中htop
,我的一个CPU内核的负载为100%,而其余的则为正常负载,并且使用了大约6GB的RAM(在此系统空闲时,这是相当正常的负载)。
我尝试过的事情没有帮助:
- 删除缓存文件夹
- 删除整个〜/ .IntelliJIDEA14文件夹
- 重新安装IntelliJ程序包
- 从JetBrains的站点手动下载IntelliJ并从我的“下载”文件夹中运行它(以查看Arch AUR软件包是否有问题)
- 配置IntelliJ以使用我的系统JVM和Maven进行导入,而不是使用其嵌入式工具
- 打开多个不同的项目(不仅仅是我最初遇到该问题的那个项目。)
这个问题确实伤害了我的工作流程,如果有人对此有任何解决方案,我将非常感激。
回答:
我终于明白了。解决的办法是……比较奇怪。TL; DR:在下运行strace
。继续阅读以获得更详细的解释。
当我决定在下面运行IntelliJ strace
来查看它正在打开哪些文件以确定它是否是文件系统瓶颈时,我遇到了它。
这给了我一些非常奇怪的结果:strace
正在喷涌出几乎恒定的段错误。不仅如此,而且IntelliJ的运行也很好,不会花很多时间索引。
与朋友协商后,我了解到,在Arch Linux上,每次发生段错误时,systemd都会记录进程内存的转储,
。strace
被认为是调试器。由于所有段错误,Arch保持日志内存转储时,它一直在挫败我的磁盘,因此为什么索引要花这么长时间,因为它在争夺磁盘I /
O。
我现在的解决方案是简单地在IntelliJ下运行strace
。但是,我将进一步研究该问题,因为我认为java
应该不会进行过多的讨论。
以上是 为什么IntelliJ IDEA挂在“索引”上? 的全部内容, 来源链接: utcz.com/qa/402546.html