Mi aspettavo che Runtime.maxMemory() restituisse esattamente -Xmx ma restituisce un valore inferiore. Allora, cosa restituisce?Runtime.maxMemory() e -Xmx
risposta
L'interpretazione del flag -Xmx dipende dalla VM. Alcune macchine virtuali, incluso HotSpot, impongono un limite inferiore sul valore effettivo di questa opzione. La proposta CCC non avrebbe dovuto menzionare la bandiera -Xmx in questo modo.
restituisce la quantità massima di memoria che la macchina virtuale Java tentativo di utilizzare, JVM non può utilizzare tutta la memoria che avete definito come -Xmx
parametro per appena mucchio.
specificare la dimensione massima, in byte, del pool di allocazione di memoria. Questo valore deve essere un multiplo di 1024 maggiore di 2 MB. Aggiungere la lettera k o K per indicare i kilobyte oppure m o M per indicare i megabyte. Il valore predefinito è 64 MB. Il limite superiore per questo valore sarà circa 4000m su Solaris 7 e Solaris 8 SPARC e 2000m su Solaris 2.6 e piattaforme x86, meno le spese generali. Esempi:
-Xmx83886080 -Xmx81920k -Xmx80m
restituisce la quantità massima di memoria che la macchina virtuale Java tenterà di utilizzare. Se non è presente alcun limite inerente, verrà restituito il valore Long.MAX_VALUE.
- 1. Quando utilizzare Runtime.maxMemory() e totalMemory()
- 2. È permgen incluso in -Xmx?
- 3. è -Xmx un limite rigido?
- 4. Aumentare Xmx e Xms per l'app runs grails
- 5. Cosa succede quando impostiamo Xmx e Xms di uguale dimensione
- 6. Java -Xmx, memoria massima sul sistema
- 7. Spazio heap Java Parametri Xmx Xms ignorati
- 8. Leggere i parametri di avvio Java JVM (ad es. -Xmx)
- 9. Spazio heap Java - In che modo -Xmx funziona esattamente?
- 10. Come aumentare intellij 32 bit xmx più di 1 GB?
- 11. Cosa potrebbe causare un processo java per superare di molto il limite Xmx o Xss?
- 12. Il consumo di memoria di avvio a molla aumenta oltre l'opzione -Xmx
- 13. Come verificare il valore Xmx configurato per un'applicazione java in esecuzione
- 14. Come impostare la memoria jmm massima (XMX) per un file jar
- 15. La JVM forza la garbage collection quando raggiunge il limite -Xmx?
- 16. Perché sono in grado di impostare -Xmx su un valore maggiore della memoria fisica e virtuale sulla macchina su Windows e su Solaris?
- 17. è la memoria allocata in JNA (o JNI) dal codice C limitato da jvm (param -Xmx o architettura 32/64)
- 18. Perché l'utilizzo della memoria totale della mia JVM è più di 30 volte superiore al suo valore Xmx?
- 19. Mathematica e J/Link: vincoli di memoria?
- 20. Diversi modi di configurare la memoria per il processo figlio TaskTracker (Mapper e Riduci attività)
- 21. Windows batch & java: combinazione -XX: comando OnOutOfMemoryError e parametri batch
- 22. Differenza di utilizzo della memoria Java tra Linux e Windows
- 23. Qual è la differenza tra -, -X parametri e -XX parametri in JVM?
- 24. Impostazioni memoria JVM
- 25. Il compilatore GWT sta esaurendo la memoria. Come posso configurarlo all'interno di IntelliJ?
- 26. Come posso aumentare la dimensione dell'heap .NET?
- 27. Ottenere statistiche della memoria in Java: Runtime vs. MemoryMXBean
- 28. JSON e e JSON E
- 29. Errore di memoria insufficiente Maven
- 30. e vs * e | vs +
Puoi fornire una descrizione più approfondita? È perché "maxMemory() dovrebbe restituire (un'approssimazione di) la memoria che è utilizzabile per oggetti" normali "e non dovrebbe includere lo spazio aggiuntivo necessario da il garbage collector (ad esempio, uno spazio aggiuntivo sopravvissuto) e non dovrebbe includere la generazione permanente. " http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4505762 – LostInComputer
@LostInComputer: Heap è diviso in 3 spazi (Modifiche basate sull'implementazione di jvm), giovane, superstite e permanente. giovane è il luogo in cui verranno creati nuovi oggetti e si trasferirà al sopravvissuto sul primo GC. Leggi questa documentazione http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html – kosa
La mia comprensione è che il collegamento da te fornito riguardo a quale di queste 3 generazioni debba essere preso in considerazione durante la segnalazione maxMemory(). – kosa