Роздрукувати всі прапори JVM


96

Знайшов цікавий прапор JVM:

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

На ньому друкуються сотні різноманітних варіантів, про які я ніколи раніше не чув. Він також друкує значення за замовчуванням, що допомагає краще діагностувати поведінку JVM. Ще один цікавий прапор:

-XX:+UnlockExperimentalVMOptions

Хтось знає будь-яку документацію, яка пояснює кожного з них?



Причиною того, що командний рядок не вказаний у документації, є те, що, як випливає з назви, він є для діагностики ВМ. Можна припустити, що люди, які налагоджують точку доступу, їх, мабуть, знають;)
Voo

1
це посилання коротко і досить добре пояснює ці варіанти.
sactiw

Відповіді:


35

Не пропустіть також -XX:+JVMCIPrintPropertiesваріанти Graal JIT.

Перед тим, як зануритися у джерела, ви можете ознайомитися з наступними витягами та швидше знайти підходящий варіант:

https://chriswhocodes.com/ (OracleJDK 6/7/8/9/10/11/12, OpenJDK 8/9/10/11, Graal CE / EE, OpenJ9, Zing)

http://jvm-options.tech.xebia.fr/

http://www.pingtimeout.fr/2012/05/jvm-options-complete-reference.html

http://stas-blogspot.blogspot.com/2011/07/most-complete-list-of-xx-options-for.html


15

Найкраща документація, яку я знайшов, - це джерело .

Я використав SO SO Q&A для створення збірки налагодження. За допомогою цієї збірки налагодження ви можете запускати java -XX:+AggressiveOpts -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+PrintFlagsFinal -XX:+PrintFlagsWithComments -version.

З каталогу з джерелами ви можете виконати (припускаючи, що ви використовуєте Linux, Cygwin тощо):

grep -FR 'UnlockExperimentalVMOptions' hotspot/

Або таке (який дивиться тільки на *.cppі *.hppфайли):

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

Потім перегляньте вихідні файли. Напевно, найкраща причина, чому не існує жодного документа, що описує всі варіанти, полягає в тому, що деякі з цих варіантів краще залишити тим, хто справді розуміє JVM, а найкращий спосіб це зробити - це глибоко ознайомитися з вихідним кодом.

Так, в словах (майже) великого майстра , use the source!


1
Джерело - це за визначенням ідеальна документація програми. Також див. Codinghorror.com/blog/2012/04/…
пірологічний

@Pyrolistic Дякую за посилання; добре читав, і я не знав про Джеффа Етвуда, про який нещодавно писали блоги read the source.
Ден Круз,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.