2012-05-07 8 views
67

encontrado una bandera JVM interesante:Impresión de todas las banderas de JVM

java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version 

Imprime cientos de varias opciones, nunca he oído hablar antes. También imprime valores predeterminados, que ayudan a diagnosticar mejor los comportamientos de JVM. Otro indicador interesante es:

-XX:+UnlockExperimentalVMOptions 

¿Alguien sabe de cualquier documentación que explica cada uno de ellos?

+5

http://www.oracle.com/technetwork/ java/javase/tech/vmoptions-jsp-140102.html – user1329572

+0

El motivo por el que la línea de comandos no aparece en la documentación es porque, como su nombre indica, está ahí para diagnosticar la máquina virtual. Se puede suponer que la gente que está depurando puntos probablemente los conozca;) – Voo

+0

este [enlace] (http://www.javaworld.com/article/2073676/hotspot-jvm-options-displayed---xx--printflagsinitial-and --xx - printflagsfinal.html) explica estas opciones en breve y bastante bien. – sactiw

Respuesta

11

La mejor documentación que he encontrado es the source.

He usado this SO Q&A para crear una compilación de depuración. Con esta compilación de depuración, puede ejecutar java -XX:+AggressiveOpts -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+PrintFlagsFinal -XX:+PrintFlagsWithComments -version.

Desde el directorio con las fuentes, se puede ejecutar (si se asume que está utilizando Linux, Cygwin o similares):

grep -FR 'UnlockExperimentalVMOptions' hotspot/ 

O, lo siguiente (que sólo se basa en *.cpp y *.hpp archivos):

find hotspot/ -name '*.[ch]pp' -exec grep -F 'UnlockExperimentalVMOptions' {} + 

Luego, observe los archivos fuente. Probablemente la mejor razón por la que no hay un documento que describa todas las opciones es que algunas de estas opciones se dejan mejor a quienes realmente entienden la JVM y la mejor manera de hacerlo es familiarizarse íntimamente con el código fuente.

Entonces, en las palabras (casi) de un gran master, use the source!

+0

La fuente es, por definición, la documentación perfecta del programa. También vea http://www.codinghorror.com/blog/2012/04/learn-to-read-the-source-luke.html – Pyrolistical

+0

@Pyrolistical Gracias por el enlace; buena lectura y no sabía que Jeff Atwood recientemente escribió sobre 'leer la fuente'. –

Cuestiones relacionadas