Ich erwartete Runtime.maxMemory(), genau die -Xmx zurückzugeben, aber es gibt einen niedrigeren Wert zurück. Also, was kommt zurück?Runtime.maxMemory() und -Xmx
Antwort
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.
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.
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
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.
- 1. Java 32bit Xmx vs Java 64bit Xmx
- 2. Ist Permgen in -Xmx enthalten?
- 3. Max Wert von Xmx und Xms in Eclipse?
- 4. Xmx und Xms für Grails erhöhen run-app
- 5. Lesen Java JVM-Startparameter (zB -Xmx)
- 6. Java-Heap-Speicher Xmx Xms-Parameter ignoriert
- 7. Java-App, die viel Speicher verwendet. Benutze -Xmx?
- 8. Java Daemons gestartet mit multiple -Xmx Option (hadoop)
- 9. Warum ist der JVM-Gesamtspeicher größer als -Xmx?
- 10. Was passiert, wenn wir Xmx und Xms auf die gleiche Größe setzen?
- 11. Erstellen von sehr großen Bilddateien mit BufferedImage, seltsamen Fragen je nach Zusammenstellung und Computern (-Xmx nicht funktionieren)
- 12. Was würde dazu führen, dass ein Java-Prozess das Xmx- oder Xss-Limit stark überschreitet?
- 13. Hadoop Karte reduzieren ignoriert die xmx Speicher in meinem Java-Code definiert
- 14. nicht in der Lage xmx über 4 GB auf System einzustellen 8gb mit RAM
- 15. Sensible Xmx/GC-Standardwerte für einen Microservice mit einem kleinen Heap
- 16. Tomcat warf "java.lang.OutOfMemoryError: Java-Heap-Speicherplatz", aber Heap-Größe in Dump ist kleiner als -Xmx
- 17. Wie lautet der default -Xmx-Wert für die Junit-Laufkonfiguration in Intellij idea?
- 18. Das Ändern von Xmx auf etwas anderes als 1024m führt zu fehlgeschlagenem Start
- 19. Wie setze ich den JVM-Parameter -Xmx für Play Framework 2.1
- 20. Stoppt -Xmx den automatischen GC, bis der maximale Speicher verbraucht ist?
- 21. Wie setze ich den maximalen jvm-Speicher (XMX) für eine JAR-Datei?
- 22. Warum kann ich -Xmx auf dem Computer unter Windows und Solaris auf einen höheren Wert als physischen und virtuellen Speicher setzen?
- 23. Speicher ist in JNA (oder JNI) durch den C-Code begrenzt durch jvm (param -Xmx oder Architektur 32/64)
- 24. Warum ist der maximale Speicher der JVM Runtime kleiner als der in der Befehlszeile -Xmx angegebene Wert?
- 25. Wie die Speicherauslastung von Java-Anwendung in einem Jar verpackt (-Xmx scheint nicht zu funktionieren) unter Windows
- 26. Warum ist der eingestellte und tatsächliche Wert von PermSize und MaxPermSize unterschiedlich?
- 27. Versuchen, Android-App von Eclipse ausführen: stecken zwischen "außerhalb des Heap-Bereichs" und "konnte nicht erstellt werden jvm"
- 28. Kann ich meine Eclipse-Heap-Größe auf 2048M erhöhen?
- 29. Vorteile von MemoryPoolMXBean.getUsage() gegenüber Runtime.freeMemory()
- 30. elastische Suche und logstash geben Speicherfehler
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
@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
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