Çatallı işlemler için Build.scala'ya bakmalısınız.
Çatallanmış süreçler için java seçeneklerini değiştirmek için, bunları Build.scala'da (veya yapınızı ne adlandırdıysanız) şu şekilde belirtmeniz gerekir:
val buildSettings = Defaults.defaultSettings ++ Seq(
javaOptions += "-Xmx1G",
)
Bu size JAVA_OPTS'yi global olarak değiştirmeden uygun seçenekleri sunacak ve özel JAVA_OPTS'yi sbt oluşturulmuş bir başlangıç betiğine koyacaktır.
For olmayan çatal süreçler bunun aracılığıyla yapılandırma ayarlamak, en uygun seçenek sbtopts
ya sbtconfig
da sbt sürümüne bağlı.
Sbt 0.13.6 .sbtconfig
kullanımdan kaldırıldığından beri . Şu /usr/local/etc/sbtopts
satırlar boyunca değiştirin :
-J-Xms512M
-J-Xmx3536M
-J-Xss1M
-J-XX:+CMSClassUnloadingEnabled
-J-XX:+UseConcMarkSweepGC
-J-XX:MaxPermSize=724M
-J-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
.sbtopts
SBT projenizin kök dizininde, dosyadakiyle aynı sözdizimini kullanarak bir dosya da oluşturabilirsiniz /usr/local/etc/sbtopts
. Bu, projeyi kendi kendine yeten yapar.
Sbt 0.13.6'dan önce çatallı olmayan işlemler için .sbtconfig içindeki seçenekleri ayarlayabilirsiniz :
Sbt'nin nerede olduğunu kontrol edin:
$ which sbt
/usr/local/bin/sbt
İçindekilere bakın:
$ cat /usr/local/bin/sbt
#!/bin/sh
test -f ~/.sbtconfig && . ~/.sbtconfig
exec java ${SBT_OPTS} -jar /usr/local/Cellar/sbt/0.12.1/libexec/sbt-launch.jar "$@"
OOM'yi önlemek için doğru jvm seçeneklerini ayarlayın (hem normal hem de PermGen):
$ cat ~/.sbtconfig
SBT_OPTS="-Xms512M -Xmx3536M -Xss1M
-XX:+CMSClassUnloadingEnabled
-XX:+UseConcMarkSweepGC -XX:MaxPermSize=724M"
SBT_OPTS'yi yalnızca sbt'nin mevcut çalışması için ayarlamak istiyorsanız, env SBT_OPTS=".." sbt
Googol Shan tarafından önerildiği gibi kullanabilirsiniz . Veya Sbt 12: 'de eklenen seçeneği kullanabilirsiniz sbt -mem 2048
. Bu, daha uzun seçenek listeleri için zorlaşır, ancak farklı ihtiyaçları olan farklı projeleriniz varsa yardımcı olabilir.
CMSClassUnloadingEnabled'ın UseConcMarkSweepGC ile uyumlu olarak PermGen alanını temiz tutmaya yardımcı olduğunu unutmayın, ancak kullandığınız çerçevelere bağlı olarak PermGen'de gerçek bir sızıntı olabilir ve bu da sonunda yeniden başlatmaya zorlar.
javaOptions += "-Xmx1G"