Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
scalac:在构建过程中内存不足_Scala_Intellij Idea_Sbt_Scala Breeze - Fatal编程技术网

scalac:在构建过程中内存不足

scalac:在构建过程中内存不足,scala,intellij-idea,sbt,scala-breeze,Scala,Intellij Idea,Sbt,Scala Breeze,我正在尝试使用Intellij IDEA自己构建 这是我的环境 Intellij版本:2018.2.1社区 操作系统:Windows 10 64位 JDK版本:1.8.0_181 scala SDK版本:2.12 sbt版本:对不起。。找不到 首先,它一直显示错误消息:java.lang.OutOfMemoryError:超出了GC开销限制 我所做的: 1.在“自定义虚拟机选项”中,添加“Xmx2048m” 2.在设置中(ctrl+alt+s)=>构建、执行、部署=>构建工具=>sbt 将“最大

我正在尝试使用Intellij IDEA自己构建

这是我的环境
Intellij版本:2018.2.1社区
操作系统:Windows 10 64位
JDK版本:1.8.0_181
scala SDK版本:2.12
sbt版本:对不起。。找不到

首先,它一直显示错误消息:java.lang.OutOfMemoryError:超出了GC开销限制

我所做的:
1.在“自定义虚拟机选项”中,添加“Xmx2048m”

2.在设置中(ctrl+alt+s)=>构建、执行、部署=>构建工具=>sbt
将“最大堆大小”更改为9196(非常大…

3.在设置(ctrl+alt+s)=>构建、执行、部署=>编译器=>Scala编译器=>其他编译器选项中,添加“-J-Xmx4096m”

4.在Scala编译器=>Scala编译服务器中,将JVM最大堆大小更改为4096

做了这些事情之后,我仍然有一些失败的机会,因为编译时内存不足。

我遗漏了什么重要的东西吗?

看来您正在使用IntelliJ内部构建系统。相反,请尝试将IntelliJ配置为将建筑委托给sbt,如下所示:

  • 启用:
    使用sbt外壳进行构建和导入(需要sbt 0.13.5+)

  • 在项目根目录下创建
    .jvmopts
    文件:

    -Xmx4G 
    -XX:MaxMetaspaceSize=4G
    
  • sbt项目
    工具窗口中,单击
    sbt任务
    节点,选择要运行的任务。注意,主菜单中的构建命令,例如,
    build | build Project
    ,现在也应该连接到系统SBT中

  • sbt shell
    工具窗口中监视执行输出


  • 值得一提的是,在使用Scala构建时,我经常会遇到内存错误。您如何解决它?你能指出哪种设置是重要的吗?最大堆大小?您应该在不颠簸的情况下尽可能提高最大堆大小。希望是几GB(我通常发现大型构建至少需要4G)。然而,即使这样也可能不够。在这些情况下,我会多次运行增量编译。在第一个崩溃后,但是成功地构建了几个文件,下一个将使用更少的内存。不适用于自动构建,但适用于在我工作时构建。谢谢,多次编译似乎是一个简单但有用的解决方案,我想知道为什么“重建模块XXX”总是失败,“构建模块XXX”有时可以工作