当前位置: 首页 > 面试题库 >

为什么IntelliJ IDEA挂在“索引”上?

竺承望
2023-03-14
问题内容

想要改善此职位? 提供有关此问题的详细答案,包括引文和为什么您的答案正确的解释。答案不够详细的答案可能会被编辑或删除。

我在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应该不会进行过多的讨论。



 类似资料:
  • 问题内容: 阅读有关ADT列表的Java文档时,它说: List接口提供了四种位置(索引)访问列表元素的方法。列表(如Java数组)从零开始。请注意,对于某些实现(例如,LinkedList类),这些操作可能在时间上与索引值成比例执行。因此,如果调用者不知道实现,则遍历列表中的元素通常比对其进行索引更可取。 这到底是什么意思?我不明白得出的结论。 问题答案: 在链接列表中,每个元素都有一个指向下一

  • 问题内容: 我有一张表,其中有一个名为的整数列。我在该列上有一个索引。 但是似乎Postgres不想使用我的索引: 知道为什么会这样吗? 问题答案: 因为: 您选择的行太多了,以至于读取整个表都比较便宜。

  • 我不明白为什么这个方法不起作用。它会编译,但会引发运行时错误。

  • 本文向大家介绍唯一索引比普通索引快吗, 为什么?相关面试题,主要包含被问及唯一索引比普通索引快吗, 为什么?时的应答技巧和注意事项,需要的朋友参考一下 唯一索引不一定比普通索引快, 还可能慢. 查询时, 在未使用limit 1的情况下, 在匹配到一条数据后, 唯一索引即返回, 普通索引会继续匹配下一条数据, 发现不匹配后返回. 如此看来唯一索引少了一次匹配, 但实际上这个消耗微乎其微. 更新时,

  • 问题内容: 我正在尝试与大学的MySQL数据库建立连接,但该连接已挂起。 此调用:打印(在我最终杀死它之后): 我刚刚从下载的MySQL连接器/ J 这里。我不确定这是否是问题的一部分。我非常准确地遵循了指示。 我也可以像这样在命令行上连接到mysql: 可能的问题: 我写的Java代码 我如何安装MySQL Connector / J 某种网络问题阻止了连接 问题: 我应该怎么解决这个问题?为什

  • 根据digitalocean教程,我用我的ELK节点作为RedHat服务器设置了ELK stack和filebeat。Kibana已启动并运行,但当我将索引模式配置为logstash-*时,我看不到任何logstash索引: 当我做卷曲以查看我的索引时,它们只是filebeat索引。Filebeat应该将数据推送到正在监听5044的logstash 您可以看到我只有filebeat索引。我检查了我