2015-02-24 23 views
6

Sto cercando di configurare metaspace per SBTCome configurare metaspace con SBT

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

ma quando corro sbt -v, ho il seguente output:

[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 

Il problema sembra che il mio personalizzato il valore per MaxMetaspaceSize è sovrascritto con un altro valore, come mostrato nell'output precedente.


versione SBT: 0.13.7

Java versione: 1.8

OS: OSX

risposta

24

(copia-incollato da un caro collega che ha trovato la soluzione)

sbt -mem 2048 

=>

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

il metaspace predefinito si basa sul valore xmx specificato con l'opzione "-mem" ;-)

3

Sembra che le opzioni di memoria vengono gestiti correttamente solo quando siano specificati nel JAVA_OPTS

impostazione 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/) 
> 

Non so se si tratta di un bug o una caratteristica

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

lavora per me a SBT 0.13.11:

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

Quando si utilizza SBT 0.13.6 o superiore è possibile creare un file nella root .sbtopts progetto con:

-J-XX:MaxMetaspaceSize=512M