如何使用SBT配置元空间

时间:2015-02-24 17:28:51

标签: sbt

我正在尝试为SBT配置元空间

export SBT_OPTS="-XX:+CMSClassUnloadingEnabled -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=256M -Xms2G -Xmx2G"

但是当我运行sbt -v时,我有以下输出:

[process_args] java_version = '1.8.0_11'
# Executing command line:
java
-XX:+CMSClassUnloadingEnabled
-XX:MaxMetaspaceSize=512M
-XX:MetaspaceSize=256M
-Xms2G
-Xmx2G
-Xms1024m
-Xmx1024m
-XX:ReservedCodeCacheSize=128m
-XX:MaxMetaspaceSize=256m
-jar
/usr/local/Cellar/sbt/0.13.7/libexec/sbt-launch.jar

问题似乎是MaxMetaspaceSize的自定义值被另一个值覆盖,如上面的输出所示。


SBT版本:0.13.7

Java版本:1.8

操作系统:OSX

4 个答案:

答案 0 :(得分:36)

(从找到解决方案的亲爱的同事那里复制粘贴)

sbt -mem 2048

=>

-Xms2048m
-Xmx2048m
-XX:ReservedCodeCacheSize=256m
-XX:MaxMetaspaceSize=512m

默认元空间基于使用“-mem”选项指定的xmx值; - )

答案 1 :(得分:10)

使用sbt 0.13.6或更高版本时,可以在项目根目录中创建.sbtopts文件:

-J-XX:MaxMetaspaceSize=512M

答案 2 :(得分:5)

只有在JAVA_OPTS

中指定内存选项时,才能正确处理内存选项

设置export JAVA_OPTS="-XX:+CMSClassUnloadingEnabled -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=256M -Xms2G -Xmx2G"

给出

sbt -v
[process_args] java_version = '1.8.0_40'
# Executing command line:
java
-XX:+CMSClassUnloadingEnabled
-XX:MaxMetaspaceSize=512M
-XX:MetaspaceSize=256M
-Xms2G
-Xmx2G
-jar
/usr/local/Cellar/sbt/0.13.8/libexec/sbt-launch.jar

[info] Loading global plugins from /Users/ant/.sbt/0.13/plugins
[info] Set current project to ant (in build file:/Users/ant/)
>

不确定是否是错误或功能

答案 3 :(得分:4)

export SBT_OPTS="-XX:MaxMetaspaceSize=512m -Xms1024m -Xmx1024m"

在sbt 0.13.11中为我工作:

sbt -v
[process_args] java_version = '1.8.0_91'
# Executing command line:
java
-XX:MaxMetaspaceSize=512m
-Xms1024m
-Xmx1024m
-jar