首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么IntelliJ的想法挂在“索引”上?

为什么IntelliJ的想法挂在“索引”上?
EN

Stack Overflow用户
提问于 2015-09-13 13:45:41
回答 18查看 72.8K关注 0票数 66

我在Arch上运行,在一个i7-5930k6核心CPU和64 14的DDR4内存上运行,我使用的是IntelliJ IDEA 14。

几天前,这个想法对我来说还不错,但是有一天,突然间,它在打开一个项目之后,在“索引”阶段开始挂起。我没有更新想法,也没有改变我的项目。IDE的UI在打开项目后挂起,只有一小块“索引”完成的进度条。每5-10分钟左右,它就会解冻,进度条会向前爬行一点,然后IDE再冻结几分钟。这种情况在15分钟到1小时之间的任何地方都会反复发生,直到它最终完成索引,此时它将挂起5-10分钟,什么也不做,直到它最终解锁并允许我进行开发。

当这种情况发生时,我的系统相当缺乏响应-- Firefox选项卡需要很长时间才能切换,在其中滚动是滞后的。打开一个新的终端窗口需要很长时间。切换窗口一般需要一段时间。在htop中,我的一个CPU内核以100%的速度加载,而其余的内核有一个正常的负载,并且使用了大约6GB的内存(在这个系统空闲时相当正常的负载)。

我尝试过的那些没有帮助的事情:

  • 删除缓存文件夹
  • 删除整个~/..IntelliJIDEA14 14文件夹
  • 重新安装IntelliJ软件包
  • 从IntelliJ的站点手动下载JetBrains并从我的下载文件夹运行它(查看Arch包是否有问题)
  • 将IntelliJ配置为使用我的系统JVM和Maven导入而不是它的嵌入式工具
  • 打开多个不同的项目(不仅仅是我最初经历过的那个项目)。

这个问题真的伤害了我的工作流程,如果有人能解决这个问题,我会非常高兴的。

EN

回答 18

Stack Overflow用户

回答已采纳

发布于 2015-09-19 21:03:46

我终于想出来了。解决办法是..。挺奇怪的。TL;DR:在strace下运行它。请继续阅读以获得更详细的解释。

当我决定在IntelliJ下运行strace来查看它打开的是哪些文件以确定它是否是文件系统瓶颈时,我突然发现了这个问题。

这给了我一些非常奇怪的结果:strace喷出了一个几乎恒定的分段断层流。不仅如此,IntelliJ运行得也很好,不会花很长时间去索引。

在咨询了一位朋友之后,我了解到,在Arch上,每次发生分段错误时,systemd都会记录进程内存的转储,除非调试器附加了strace被认为是调试器。由于所有的段错误,Arch一直在记录内存转储,因此索引花费了这么长时间,因为它正在为磁盘I/O而斗争。

我现在的解决方案是简单地在strace下运行strace。但是,我将进一步研究这个问题,因为我认为java不应该分割那么多的错误。

票数 22
EN

Stack Overflow用户

发布于 2016-07-19 10:51:22

试试Invalidating the cache and restarting IntelliJ

在“文件”菜单中,选择“失效缓存/重新启动.”,然后单击“失效并重新启动”按钮。

票数 66
EN

Stack Overflow用户

发布于 2016-06-04 06:27:29

编辑IntellijVERSION/bin/idea.properties,设置idea.max.intellisense.filesize=50

更新:如果您有许多库或许多大文件(字符太多、一行多或行多), Intellij将跳过比50kb.try大的索引文件。

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32550292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档