Qual è il valore predefinito per XX: MaxDirectMemorySize?Predefinito per XX: MaxDirectMemorySize
risposta
Da http://www.docjar.com/html/api/sun/misc/VM.java.html
vedo:
163 // A user-settable upper limit on the maximum amount of allocatable direct
164 // buffer memory. This value may be changed during VM initialization if
165 // "java" is launched with "-XX:MaxDirectMemorySize=<size>".
166 //
167 // The initial value of this field is arbitrary; during JRE initialization
168 // it will be reset to the value specified on the command line, if any,
169 // otherwise to Runtime.getRuntime.maxDirectMemory().
170 //
171 private static long directMemory = 64 * 1024 * 1024;
così appare per difetto a 64 mega.
Questo - http://docs.oracle.com/cd/E15289_01/doc.40/e15062/optionxx.htm#BABGCFFB - lo contraddice direttamente, sostenendo che sarebbe "illimitato"? – StaxMan
Il collegamento docs.oracle.com punta ai documenti per JRockit, non OpenJDK. – technomancy
Il commento suggerisce che il valore, se non specificato sulla riga di comando, viene preso da maxDirectMemory(). Questo link qui (http://mail.openjdk.java.net/pipermail/core-libs-dev/2012-January/008884.html) corregge l'errore di battitura qui (non esiste un tale metodo) per maxMemory(), che a sua volta equivale al -Xmx impostato sulla riga di comando. –
Da sun.misc.VM
, è Runtime.getRuntime.maxMemory()
, è ciò che è configurato con -Xmx
. Per esempio. se non si configurare -XX:MaxDirectMemorySize
e fanno configurare -Xmx5g
, il "default" MaxDirectMemorySize
sarà anche 5 Gb, e il cumulo totale + utilizzo della memoria diretta delle app può crescere fino a 5 + 5 = 10 Gb.
- 1. Perché XX: MaxDirectMemorySize non può limitare Unsafe.allocateMemory?
- 2. Differenza tra -XX: -UseParallelGC e -XX: + UseParallelGC
- 3. AVVISO: lenta l'accesso predefinito per la chiave Interno ha impiegato xx secondi, la tolleranza è 0.020000
- 4. qual è lo scopo di -XX: MinHeapFreeRatio e -XX: MaxHeapFreeRatio
- 5. Java: "xx" .equals (variabile) migliore di variable.equals ("xx"), TRUE?
- 6. Cosa fanno i flag -XX: -PrintGC e XX: -PrintGCDetails?
- 7. Cosa significa webpack per XX moduli nascosti
- 8. JVM -XX: + argomento StringCache?
- 9. Cosa fa -XX: MaxPermSize fare?
- 10. Cos'è Java -XX: + Parametro UseMembar
- 11. SSN Regex per 123-45-6789 O XXX-XX-XXXX
- 12. un caso divertente per la query mysql "come 'xx'"
- 13. -XX: + UseG1GC è la sostituzione corretta per -Xincgc?
- 14. Cosa GCC __attribute __ ((modalità (XX)) effettivamente fare
- 15. Angular - TypeError: XX non è una funzione
- 16. Java VM non riconosce -XX: G1YoungGenSize?
- 17. Predefinito per tipo generico?
- 18. costruttore predefinito per int
- 19. Layout predefinito per ArrayAdapter
- 20. Genera x + xx + xxx + xxxx ... per un dato intero (per 4 -> 4 + 44 + 444 ...)
- 21. Filtro predefinito Jquery per il filtro predefinito colonna multiple
- 22. Windows batch & java: combinazione -XX: comando OnOutOfMemoryError e parametri batch
- 23. PowerShell: prompt utente che scade il prompt dopo xx secondi
- 24. Qualsiasi convertitore predefinito per WPF?
- 25. Timeout predefinito per HttpComponent Client
- 26. jqGrid - Ordinamento predefinito per colonna
- 27. Come riempimento predefinito per AlertDialog
- 28. MessageBox WPF Predefinito per annullare
- 29. Qual è la differenza tra -Xss e -XX: ThreadStackSize?
- 30. Errore Android in eclissi: impossibile risolvere il target 'android-xx'
Ricordo che il valore predefinito assume il valore di -Xmx. Questo dovrebbe essere verificato da un semplice test. – irreputable
La memoria diretta viene utilizzata per altre cose specifiche non correlate all'heap. da quello che ho trovato nella mia esplorazione, sembra che 64 sia l'impostazione predefinita, usando -1 come il valore lo imposta su -Xmx. –