2012-12-05 4 views

Antwort

5

Die Interpretation des Flags -Xmx ist VM-abhängig. Einige VMs, einschließlich HotSpot, erzwingen eine untere Grenze für den effektiven Wert von diese Option. Der CCC-Vorschlag sollte das -Xmx-Flag auf diese Weise nicht erwähnt haben.

Reference

4

Gibt die maximale Größe des Speichers, dass die Java Virtual Machine wird Versuch verwenden, Jvm nicht den gesamten Speicher verwenden, können Sie als -Xmx Parameter für nur Heap definiert haben.

+0

Können Sie eine detailliertere Beschreibung geben? Dies liegt daran, dass "maxMemory()" den Speicher zurückgeben sollte, der für "normale" Objekte verwendet werden kann und nicht den zusätzlichen Speicherplatz von des Garbage Collectors (z. B. einen zusätzlichen Survivor Space) enthalten sollte und nicht sollte enthalten die permanente Generation. " http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4505762 – LostInComputer

+0

@LostInComputer: Heap ist in 3 Bereiche unterteilt (Änderungen basierend auf jvm-Implementierung), jung, Überlebende und permanent. Jung ist der Ort, an dem neue Objekte entstehen und beim ersten GC zum Überlebenden werden. Lesen Sie diese Dokumentation http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html – kosa

+0

Mein Verständnis ist, dass der Link, den Sie zur Verfügung gestellt haben, darüber diskutiert, welche dieser drei Generationen bei der Berichterstattung berücksichtigt werden muss maxMemory(). – kosa

1

-Xmxn

die maximale Größe in Bytes angeben, der Poolspeicherzuordnung. Dieser Wert muss ein Vielfaches von 1024 größer als 2 MB sein. Fügen Sie den Buchstaben k oder K hinzu, um Kilobyte anzuzeigen, oder m oder M, um Megabyte anzugeben. Der Standardwert ist 64 MB. Die Obergrenze für diesen Wert beträgt 0,ungefähr 4000m auf Solaris 7 und Solaris 8 SPARC-Plattformen und 2000m auf Solaris 2.6- und x86-Plattformen abzüglich der Overhead-Beträge. Beispiele:

 -Xmx83886080 
     -Xmx81920k 
     -Xmx80m 

maxMemory()

Gibt die maximale Größe des Speichers, dass die Java Virtual Machine wird zu verwenden versuchen. Wenn es kein inhärentes Limit gibt, wird der Wert Long.MAX_VALUE zurückgegeben.

Verwandte Themen