2011-01-11 7 views
10



Als ich Maven-Anlegestelle-Plugin laufen, ich laufe nächsten Befehl:Freie Heap-Größe erhöht sich nicht in Maven

mvn -DMAVEN_OPTS="-Xmx1024m -Xms512m" -Djetty.port=8080 jetty:run 

aber wenn ich versuche, die Ausgabe freier Heap-Größe mit

Long heapFreeSize = Runtime.getRuntime().freeMemory(); 

Es gibt immer etwas über etwa 30000000 aus.
Ich nehme an, es ist Größe in Bytes, also etwa 30 Megabyte.
Warum hat dann der freie Heapspeicher nicht zugenommen?

+0

Ist es ein OutOfMemoryError geben? Hast du es mit -XX versucht: MaxPermSize = 1024m? freeMemory() zeigt den Speicherplatz für die zukünftige Zuweisung an. Und Permament Objekte gehen in den Perm Raum. Du tust. – ssedano

+0

Wenn ich versuche -XX: MaxPermSize = 1024 ändert sich nichts ... Ich kann es jetzt nicht auf OutOfMemoryError testen ... Sie meinen, dass dieser Raum (für die zukünftige Zuweisung) wird je nach den Anforderungen der Anwendung erhöhen? – gennad

+0

maxMemory() zeigt die Gesamtspeichermenge an. Paste maxMemoryoutput bitte – ssedano

Antwort

16

MAVEN_OPTS ist eine Umgebungsvariable bezeichnet, die durch Maven gelesen und für Forking Java-Prozesse als Befehlszeilenparameter verwendet. Befehlszeilenargumente steuern, wie die ausführbare Java-Datei gestartet wird, z. Sachen wie Speichereinstellungen.

-D wird zum Festlegen von Java-Systemeigenschaften verwendet, was etwas völlig anderes ist als Befehlszeilenargumente. Java-Systemeigenschaften können programmatisch gelesen werden, z. mit System.getProperties().

Fenster:

SET MAVEN_OPTS="-Xmx1024m -Xms512m" 
mvn -Djetty.port=8080 jetty:run 

Linux:

export MAVEN_OPTS="-Xmx1024m -Xms512m" 
mvn -Djetty.port=8080 jetty:run 
+0

zu setzen musste ich zweimal nachlesen um es zu bekommen, aber dann löste ich alle meine Probleme :-) Danke. Ich habe schon eine ganze Weile gespart und hätte nicht mehr mit Sachen herumgespielt. –

2

Ich denke -DMAVEN_OPTS = "- Xmx1024m -Xms512m" ist nicht korrekte Weise, Speicherparameter hier zu spezifizieren.

ein env variable Set MAVEN_OPTS mit Inhalt "-Xmx1024m -Xms512m"

+0

Sie meinen mvn jetty: run -Xmx1024m -Xms512m? Es läuft nicht. mvn jetty: run -DXmx1024m -DXms512m läuft, aber der Speicher ist der selbe wie bei MAVEN_OPTS – gennad

+0

sorry mein Fehler thew nur so denke ich ist es eine env variable – lweller