¿Cuál es el valor predeterminado para XX: MaxDirectMemorySize?Predeterminado para XX: MaxDirectMemorySize
Respuesta
De http://www.docjar.com/html/api/sun/misc/VM.java.html
que veo:
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;
por lo que aparece por defecto a 64 megas.
Esto - http://docs.oracle.com/cd/E15289_01/doc.40/e15062/optionxx.htm#BABGCFFB - ¿lo contradice directamente, alegando que sería "ilimitado"? – StaxMan
El enlace docs.oracle.com apunta a los documentos para JRockit, no OpenJDK. – technomancy
El comentario sugiere que el valor, si no se especifica en la línea de comandos, se toma de maxDirectMemory(). Este enlace aquí (http://mail.openjdk.java.net/pipermail/core-libs-dev/2012- enero/008884.html) corrige el error tipográfico aquí (no existe tal método) para maxMemory(), que a su vez es igual a -Xmx que estableces en la línea de comando. –
De sun.misc.VM
, es Runtime.getRuntime.maxMemory()
, eso es lo que se configura con -Xmx
. P.ej. si no lo hace configurar -XX:MaxDirectMemorySize
y hacen configurar -Xmx5g
, el "defecto" MaxDirectMemorySize
también será de 5 Gb, y el montón total de + uso de memoria directa de la aplicación puede crecer hasta 5 + 5 = 10 Gb.
- 1. Obtenga la hora de mañana xx: xx
- 2. Diferencia entre -XX: -UseParallelGC y -XX: + UseParallelGC
- 3. ¿Qué hacen los indicadores -XX: -PrintGC y XX: -PrintGCDetails?
- 4. ¿Qué hace -XX: MaxPermSize?
- 5. JVM -XX: + argumento StringCache?
- 6. un caso curioso para la consulta de mysql "como" xx '"
- 7. Aceptado XX: ¿Usar valores de SSE para Java JVM?
- 8. ¿Cuál es el significado de las banderas -XX: NewRatio y -XX: OldSize JVM?
- 9. Cómo usar -XX: + UnlockDiagnosticVMOptions -XX: CompileCommand = opción de impresión con HotSpot JVM
- 10. ¿Qué GCC __attribute __ ((modo (XX)) realmente hacen
- 11. si la cadena comienza con "xx" (PHP)
- 12. -XX: OnOutOfMemoryError = "kill -9% p" Problema
- 13. Java VM no reconoce -XX: G1YoungGenSize?
- 14. Predeterminado para valores nulos
- 15. Predeterminado ControlTemplate para Expander
- 16. Getdate predeterminado para Insert date
- 17. Establecer predeterminado content_type para Sinatra
- 18. ¿Predeterminado para el tipo genérico?
- 19. puerto predeterminado para SQL Server
- 20. Los métodos xx y yy usan la misma SOAPAction
- 21. Usar argumentos JVM GC -XX: SurvivorRatio = 8 no funciona
- 22. 'elemento inesperado: XX' durante la deserialización MongoDB C#
- 23. El Type XX existe en ambos archivos DLL
- 24. ¿Puede anular los permisos de archivo para el volcado de pila producido por -XX + HeapDumpOnOutOfMemoryError?
- 25. SSN expresión regular para 123-45-6789 O XXX-XX-XXXX
- 26. WPF MessageBox Valor predeterminado para cancelar
- 27. Tiempo de espera predeterminado para HttpComponent Client
- 28. Valor predeterminado para una columna de texto
- 29. Atributo de clasificación predeterminado para Doctrine Model
- 30. git - push predeterminado para --recurse-submodules = check
Recuerdo que el valor predeterminado es tomar el valor de -Xmx. Esto se debe verificar con una prueba simple. – irreputable
memoria directa se utiliza para otras cosas específicas no relacionadas con el montón. por lo que encontré en mi exploración, parece que 64 es el valor predeterminado, usando -1 a medida que el valor lo establece en -Xmx. –