कांटे की प्रक्रियाओं के लिए आपको Build.scala को देखना चाहिए
कांटे की प्रक्रियाओं के लिए जावा विकल्पों को संशोधित करने के लिए आपको उन्हें Build.scala में निर्दिष्ट करने की आवश्यकता है (या जो आपने अपने बिल्ड का नाम दिया है) जैसे:
val buildSettings = Defaults.defaultSettings ++ Seq(
//…
javaOptions += "-Xmx1G",
//…
)
यह आपको विश्व स्तर पर JAVA_OPTS को संशोधित किए बिना उचित विकल्प देगा , और यह कस्टम JAVA_OPTS को एक sbt जनरेट की गई स्टार्ट-स्क्रिप्ट में डाल देगा।
के लिए गैर काँटेदार प्रक्रियाओं यह के माध्यम से config स्थापित करने के लिए सबसे सुविधाजनक है sbtoptsया sbtconfigअपने एसबीटी संस्करण के आधार पर।
चूंकि sbt 0.13.6 है .sbtconfig पदावनत है । /usr/local/etc/sbtoptsइन पंक्तियों के साथ संशोधित करें :
-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 प्रोजेक्ट की जड़ में एक फ़ाइल भी बना सकते हैं/usr/local/etc/sbtopts । यह परियोजना को आत्म-निहित बनाता है।
Sbt से पहले 0.13.6 आप गैर कांटा प्रक्रियाओं के लिए .sbtconfig में विकल्प सेट कर सकते हैं:
जाँच करें कि sbt कहाँ है:
$ which sbt
/usr/local/bin/sbt
सामग्री को देखो:
$ 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 (नियमित और PermGen दोनों) को रोकने के लिए सही jvm विकल्प सेट करें:
$ cat ~/.sbtconfig
SBT_OPTS="-Xms512M -Xmx3536M -Xss1M
-XX:+CMSClassUnloadingEnabled
-XX:+UseConcMarkSweepGC -XX:MaxPermSize=724M"
यदि आप SBT_OPTS को केवल sbt के वर्तमान रन के लिए सेट करना चाहते हैं, तो आप Googol env SBT_OPTS=".." sbtShan द्वारा सुझाए गए अनुसार उपयोग कर सकते हैं । या आप Sbt 12 में जोड़े गए विकल्प का उपयोग कर सकते हैं:sbt -mem 2048 :। यह विकल्पों की लंबी सूची के लिए अनिच्छुक हो जाता है, लेकिन यदि आपके पास विभिन्न आवश्यकताओं के साथ अलग-अलग परियोजनाएं हैं, तो यह मदद कर सकता है।
ध्यान दें कि UseConcMarkSweepGC के साथ कॉन्सर्ट में CMSClassUnloadingEnabled PermGen स्पेस को साफ रखने में मदद करता है, लेकिन आप जो फ्रेमवर्क इस्तेमाल करते हैं, उसके आधार पर आपको PermGen पर एक वास्तविक लीक हो सकता है, जो अंततः एक पुनरारंभ करता है।
javaOptions += "-Xmx1G"