为什么我在Eclipse中使用javascript自动完成时会收到消息:“未处理的事件循环exceptionJava堆空间”?

当我尝试使用任何javascript模板时Eclipse始终挂起,我收到此消息:弹出窗口中的“未处理的事件循环exceptionJava堆空间”。

我为Eclipse进程和Java进程启动了一个top命令(使用Ubuntu),然后尝试在Eclipse上使用自动完成。 我注意到Java进程占用了100%的CPU,而内存保持不变(大约22%)。

我没有事先修改Eclipse IDE就得到了这个…

关于如何解决这个问题的任何想法?

编辑:我还注意到,在首选项窗口下:Javascript / Content Assist / Advanced选中“Other Javascript Proposals”选项。 未选中时,问题就解决了。 但是,它缺少变量和对象的内容辅助。 所以这部分解决了我的问题。

对于任何Eclipse用户,此错误都是“经典”。 打开你的日食文件夹。 在那里,编辑“eclipse.ini”文件。

找到“-vm”所在的行。 在此行下,您有三个内存的通用设置。 简而言之 :

  • “Xms”是分配给虚拟机的最小内存量。
  • “Xmx”是最大量。
  • “MaxPermSize”是分配给虚拟机的permgen的内存量。

您在此处出现的错误消息的exception意味着java已达到其最大内存设置,但它需要更多。 在这种情况下,Java占用100%的CPU是“正常的”:垃圾收集器正在全职工作。 你要编辑的一个设置是“Xmx”,这将为Java提供更多的内存,但是将其他两个设置得更高也没有什么坏处。 我通常的设置是:

  • -Xms256m
  • -Xmx1024m
  • -XX:MaxPermSize参数=256米

我设法找到了问题。 我暂时将一些js文件移动到我的项目中(其中一些复制了原始文件)并且自动完成搜索了太多文件。 所以我改变了src文件夹,如下所示:

  • 右键单击项目
  • 选择属性
  • 使用Javascript
  • 包括路径
  • 在源选项卡上,我排除了重复的文件/文件夹以及一些我不想在自动完成时使用的文件/文件夹。

这解决了我的问题,我的Eclipse现在快速自动完成了。

(1)转到打开的午餐配置然后转到参数添加这个

-Xms512m -Xmx1024m -XX:MaxPermSize=512m 

您可以将以下命令添加到AIDE.ini文件并重新启动IDE。

 -vmargs -Dosgi.requiredJavaVersion=1.6 -Dlocaldev=true -Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005