Untuk proses bercabang, Anda harus melihat Build.scala
Untuk mengubah opsi java untuk proses bercabang, Anda perlu menentukannya di Build.scala (atau apa pun yang Anda beri nama build Anda) seperti ini:
val buildSettings = Defaults.defaultSettings ++ Seq(
//…
javaOptions += "-Xmx1G",
//…
)
Ini akan memberi Anda opsi yang tepat tanpa memodifikasi JAVA_OPTS secara global, dan itu akan menempatkan JAVA_OPTS khusus dalam skrip awal yang dihasilkan sbt
Untuk proses yang tidak bercabang , paling mudah untuk mengatur konfigurasi melalui sbtoptsatau sbtconfigbergantung pada versi sbt Anda.
Karena sbt 0.13.6 .sbtconfigtidak digunakan lagi . Ubah di /usr/local/etc/sbtoptssepanjang baris ini:
-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
Anda juga dapat membuat .sbtoptsfile di root proyek SBT Anda menggunakan sintaks yang sama seperti di /usr/local/etc/sbtoptsfile. Ini membuat proyek mandiri.
Sebelum sbt 0.13.6 Anda dapat mengatur opsi di .sbtconfig untuk proses non-fork :
Periksa di mana sbt berada:
$ which sbt
/usr/local/bin/sbt
Lihat isinya:
$ 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 "$@"
Setel opsi jvm yang benar untuk mencegah OOM (reguler dan PermGen):
$ cat ~/.sbtconfig
SBT_OPTS="-Xms512M -Xmx3536M -Xss1M
-XX:+CMSClassUnloadingEnabled
-XX:+UseConcMarkSweepGC -XX:MaxPermSize=724M"
Jika Anda ingin menyetel SBT_OPTS hanya untuk menjalankan sbt saat ini, Anda dapat menggunakan env SBT_OPTS=".." sbtseperti yang disarankan oleh Googol Shan. Atau Anda dapat menggunakan opsi ditambahkan dalam Sbt 12: sbt -mem 2048. Ini menjadi sulit untuk daftar opsi yang lebih panjang, tetapi mungkin membantu jika Anda memiliki proyek berbeda dengan kebutuhan berbeda.
Perhatikan bahwa CMSClassUnloadingEnabled bersama UseConcMarkSweepGC membantu menjaga ruang PermGen tetap bersih, tetapi bergantung pada kerangka kerja apa yang Anda gunakan, Anda mungkin mengalami kebocoran aktual di PermGen, yang pada akhirnya memaksa restart.
javaOptions += "-Xmx1G"