如何为sbt设置堆大小?

15 浏览
0 Comments

如何为sbt设置堆大小?

我正在使用SBT 0.12.0版本。我已经阅读了stackoverflow上的其他回答并按照它们的指示进行了操作,然而它们都没有起到任何作用,例如:\n

    \n

  • 创建ForkRun类 - 在我使用sbt的过程中,我没有观察到任何分叉的进程。
  • \n

  • 设置环境变量JAVA_OPTS - 它被设置了,但是sbt的进程命令行似乎根本没有使用它。
  • \n

  • sbt -J-Xmx2G将参数附加到sbt的进程命令行,然而sbt使用的是附加参数之前的旧值-Xmx1536m
  • \n

\n我是不是漏掉了什么?在进行测试和run时,我该如何设置sbt 0.12的堆大小?

0
0 Comments

在使用sbt运行时,可能会遇到内存不足的问题,导致程序无法正常执行。解决这个问题的方法是设置堆大小。下面是具体的解决方法:

1. 使用命令"sbt -mem 23000 run"可以解决问题,其中23000表示堆大小为23GB。

需要注意的是,这种方法可能适用于paulp的sbt包装器,而不是原始的sbt。

以上就是关于如何为sbt设置堆大小的问题及解决方法。

0
0 Comments

如何为sbt设置堆大小?

在2015年3月之前,如果您正在使用Homebrew安装的sbt,并且在OSX上使用,则应编辑文件/usr/local/etc/sbtopts。例如:

# set memory options

#

#-mem <integer>

-mem 2048

这个方法在Windows上也适用,而不需要修改环境变量(文件位于c:\program files\sbt\confs)。

在Linux中,文件位于/etc/sbt-launcher-packaging。

在Ubuntu Artful中,我发现文件位于/etc/sbt/sbtopts。

这个解决方法将使JVM预分配所有2GB的内存。如果您使用SBT_OPTS=-Xmx2G sbt启动SBT,它将根据需要增加堆大小,最多达到2GB。

请参考上面的解决方法:stackoverflow.com/a/55706960/1199564

0
0 Comments

在使用sbt进行编译时,出现了“OutOfMemoryError: Java heap space”错误。这个错误是由于堆大小不足导致的。为了解决这个问题,需要设置sbt的堆大小。

解决方法如下:

1. 打开.bash_profile文件,添加以下内容:

export SBT_OPTS="-Xmx2G -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=2G -Xss2M  -Duser.timezone=GMT"

2. 保存文件并重新加载.bash_profile文件。

此外,还需要注意以下几点:

- 确保使用的是最新版本的sbt。较旧的版本可能会覆盖上述设置。

- 如果使用的是Mac,可以使用brew upgrade sbt命令来安装最新版本的sbt。

- 在Java 8中,已经移除了Perm Gen选项,因此不需要包含MaxPermSize设置。

- 添加timezone=GMT选项是为了在GMT时区下运行所有操作。

通过以上步骤设置了sbt的堆大小后,应该可以解决“OutOfMemoryError: Java heap space”错误。

0