Ich benutze SBT 0.12.0. Ich habe andere Antworten zum Stapelüberlauf gelesen und bin ihnen gefolgt, aber keine davon hilft zum Beispiel:
ForkRun
Klasse erstellen - Ich habe während meiner Verwendung von sbt keinen gegabelten Prozess beobachtet- Umgebungsvariable festlegen
JAVA_OPTS
- Sie wird festgelegt, aber die Prozessbefehlszeile von sbt scheint sie überhaupt nicht zu verwenden. sbt -J-Xmx2G
Hängt den Parameter an die Befehlszeile des sbt-Prozesses an. Der alte Wert-Xmx1536m
wird jedoch von sbt anstelle des angehängten Parameters verwendet.
Vermisse ich etwas Wie stelle ich die Heap-Größe für sbt 0.12 ein, wenn ich sowohl teste als auch run
?
mem
Parameter beim Starten von sbt ausprobiert? (zBsbt -mem2000
)Antworten:
Folgendes brauche
SBT_OPTS
ich in meinem .bash_profile :UPDATE: Um Ihren 2G-Heap-Speicherplatz zu erhalten, können Sie Folgendes verwenden:
HINWEIS: SBT MUSS DIE NEUESTE VERSION SEIN
Ältere Versionen von
sbt
enthalten Fehler, die diese Einstellungen überschreiben. Verwenden Sie siebrew upgrade sbt
für die neueste Versionsbt
für Mac (vorausgesetzt, Brew wird installiert) (IDK für Linux). https://github.com/sbt/sbt/issues/2945#issuecomment-277490848quelle
-Xmx1546m
noch in der Befehlszeile vorhanden, und die maximale Heap-Größe ist weiterhin auf 1,5 GB begrenzt, wie in visualvm gezeigt.Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=4G; support was removed in 8.0
Wenn Sie ab März 2015 sbt unter OSX mit Homebrew verwenden , sollten Sie die Datei bearbeiten
/usr/local/etc/sbtopts
z.B
quelle
/etc/sbt-launcher-packaging
./etc/sbt/sbtopts
SBT_OPTS=-Xmx2G sbt
SBT starten, wird der Heap nach Bedarf auf maximal 2 GB vergrößert."sbt -mem 23000 run" funktioniert bei mir.
quelle
Ich habe die Lösung gefunden. Unabhängig davon, wie Sie die Größe des JVM-Heapspeichers angeben, funktioniert dies niemals, da die ausführbare SBT-Datei diese bereits überschrieben hat.
In der ausführbaren SBT-Datei gibt es eine Zeile mit der Aufschrift:
. /usr/share/sbt/sbt-launch-lib.bash
Also habe ich die Datei bearbeitet:
Entfernen Sie die
-
Leitung.Wenn Sie jetzt SBT ausführen, werden Ihre Einstellungen für die Größe des JVM-Heapspeichers nicht mehr überschrieben. Sie können die Einstellungen für die Heap-Größe mithilfe der Antwort von @ Noan festlegen.
Oder alternativ:
sbt -J-Xmx4G -J-Xms4G
quelle
export SBT_OPTS="..."
in~/.sbtconfig
tatsächlich funktioniert.Unter Windows müssen Sie für sbt 0.13.9.2
JAVA_OPTS
die gewünschten JVM-Optionen festlegen.Das
sbt.bat
Skript lädt seine Standardeinstellungen vonconf\sbtconfig.txt
inCFG_OPTS
, wird jedochJAVA_OPTS
stattdessen verwendet, wenn es festgelegt ist.Relevante Auszüge aus
sbt.bat
:. . . (überspringen). . .
quelle
Ich wollte ein Problem wie dieses unter Mac OS X mit einer Homebrew-Installation von SBT lösen. Wenn Sie SBT über Homebrew installiert haben, sind Sie im klaren, da die
/usr/local/bin/sbt
Datei so aussiehtDies bedeutet, dass alle von Ihnen
SBT_OPTS
eingegebenen Einstellungen erhalten bleiben (Ihr -Xmx hat Vorrang). Darüber hinaus werden in der ersten Zeile des Skripts alle Befehle ausgeführt,~/.sbtconfig
sofern vorhanden, sodass Sie Ihre SBT-Optionen möglicherweise besser platzieren können, wenn Sie viel mit ihnen spielen. Sie müssen nichtsource ~/.bash_profile
jedes Mal, wenn Sie eine Änderung vornehmenSBT_OPTS
quelle
-mem
Parameter in/usr/local/etc/sbtopts
Wenn Sie sbt über PowerShell ausführen, legen Sie die
SBT_OPTs
Umgebungsvariable wie folgt fest :Dann renne:
quelle
Für SBT Version 1.0.4 unter Windows stammen die Standard- JVM-Einstellungen aus der
sbt\conf\sbtconfig.txt
Datei. Bearbeiten Sie einfach die Werte hier. Wechseln Sie-Xmx512M
zu-Xmx2048M
.Dies ist nicht die einzige Quelle für JVM-Optionen für SBT. Andere können durch Inspektion gefunden werden
sbt.bat
. Eine einfache Möglichkeit zur Diagnose, woher die Einstellungen stammen, besteht darin, diese Zeile in einer Batchdatei auskommentieren :@echo off
.quelle
sbt\conf
wird nicht im Benutzerverzeichnis, sondern im Ordner "Programme" abgelegtC:\Program Files (x86)\sbt\conf
.Eine schnelle Möglichkeit hierfür ist eine
.jvmopts
Datei im Stammverzeichnis Ihres Projekts (aus der Lagom Framework-Dokumentation ):quelle
In meinem Fall hat die Konfiguration meines Dienstes die Umgebungsvariable
SBT_OPTS
und überschriebenJAVA_OPTS
. Ich konnte die Grenzen festlegen, indem ichbuild.sbt
Folgendes einstellte :Referenz: https://www.scala-sbt.org/sbt-native-packager/archetypes/java_app/customize.html
quelle