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 sbtopts
atau sbtconfig
bergantung pada versi sbt Anda.
Karena sbt 0.13.6 .sbtconfig
tidak digunakan lagi . Ubah di /usr/local/etc/sbtopts
sepanjang 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 .sbtopts
file di root proyek SBT Anda menggunakan sintaks yang sama seperti di /usr/local/etc/sbtopts
file. 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=".." sbt
seperti 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"