我正在处理一个由SBT管理的相当大的项目(完全重新编译时间超过150秒)。我正在使用最新的Scala IDE插件(4.0.0-M1),我几乎无法编辑任何足够大的源文件 - 每次输入内容时,eclipse会完全冻结几秒钟。保存更改时也会发生同样的情况。编辑文件似乎也会导致越来越多的性能降低。重启Eclipse会有所帮助,但不会长久。为了解决这个问题,我必须通过Eclipse在文本编辑器中打开一个.scala源文件,失去了Scala编辑器的所有好处。
PC足够好 - 带有16 GB RAM的Intel Core i5-3570
我使用的是Windows 7 x64,Scala 2.10.3,SBT 0.13.1和Oracle JDK 1.7.0u45
在Java VisualVM中使用分析显示Scala演示编译器显然使用了CPU:
Eclipse的堆状态指示器永远不会超过一半。
自动构建,暗示突出显示和标记出现都已关闭
来自eclipse.ini
的配置(从http://scala-ide.org/docs/current-user-doc/advancedsetup/index.html添加了3个最后标志):
-vm
D:\ProgramFiles\Java\jdk1.7.0_45\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms1024m
-Xmx2048m
-Xss1M
-XX:MaxPermSize=1024M
-server
-XX:+DoEscapeAnalysis
-XX:+UseConcMarkSweepGC
-XX:+UseCompressedOops
答案 0 :(得分:4)
为后人。罪魁祸首是Mylyn插件试图找到关于每个击键和UI线程上的光标下的内容的准确信息。有关详细信息,请参阅票证#1002129。
答案 1 :(得分:3)
我还没有尝试过新的Scala Eclipse IDE,但我的选择是-Xms2g -Xmx8g
一年前。我在Mac i7quad / 8GB上使用它作为一个相当大但不是很大的项目,但它很慢......
最终我决定只在保存文件时编译。
所以也许你应该尝试一下:
-d64
选项(如果您的平台上存在对于最后一个,如何以及是否禁用演示编译器,我不确定;但这肯定不会调用它。
答案 2 :(得分:2)
如果演示文稿编译器花了这么长时间,那么减速源可能在你的代码中,而不是在使用它的工具中。
分歧的含义有时是类型检查时间变得巨大的罪魁祸首。您是否尝试使用Xlog-implicits
进行编译?您可能还想使用IDE features to mark implicit usage in your code。
答案 3 :(得分:1)
尝试intellij社区(不是一个时髦的答案)。它运行速度比Eclipse快。 此外,即使在intelliJ中,有时当文件变得太大而无法用于IDE时,我必须将文件分开。
答案 4 :(得分:1)
您可以停用自动构建。在菜单中,取消选中Project > Build Automatically
。
每次保存源文件时,Eclipse都会保存您的文件,但是如果选中此选项,则不会尝试构建工作区。
要强制构建,请在Mac上按 Ctrl - B 或 Cmd - B 。 如果使用问题视图,则有两类问题 - 需要保存的问题,以及需要保存+重新编译的问题。因此,如果您发现保存后问题没有消失,但您认为它不再是问题,只需重建即可。
这是我在Eclipse和SSD和多核处理器之前开发大型Java项目时在Eclipse中所做的。
答案 5 :(得分:0)
使用默认的推荐配置,我只需卸载“代码推荐”插件,并将“java的自动激活触发器”恢复为“。”。它现在运行得更快。