Menemukan JVM Flag yang menarik:
java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version
Ini mencetak ratusan pilihan yang berbeda, saya tidak pernah mendengarnya sebelumnya. Ini juga mencetak nilai default, yang membantu mendiagnosis perilaku JVM dengan lebih baik. Bendera menarik lainnya adalah:
-XX:+UnlockExperimentalVMOptions
Apakah ada yang tahu tentang dokumentasi yang menjelaskan masing-masingnya?
Jawaban:
Jangan lewatkan juga
-XX:+JVMCIPrintProperties
untuk pilihan Graal JIT.Sebelum menyelami sumber, Anda dapat membaca sekilas ekstrak berikut dan menemukan opsi yang cocok lebih cepat:
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
sumber
Dokumentasi terbaik yang saya temukan adalah sumbernya .
Saya telah menggunakan SO Q&A ini untuk membuat build debug. Dengan build debug ini, Anda dapat menjalankan
java -XX:+AggressiveOpts -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+PrintFlagsFinal -XX:+PrintFlagsWithComments -version
.Dari direktori dengan sumber, Anda dapat mengeksekusi (dengan asumsi Anda menggunakan Linux, Cygwin atau sejenisnya):
Atau, berikut ini (yang hanya melihat
*.cpp
dan*.hpp
file):Kemudian lihat file sumbernya. Mungkin alasan terbaik mengapa tidak ada satu dokumen pun yang menjelaskan semua opsi adalah bahwa beberapa dari opsi ini lebih baik diserahkan kepada mereka yang benar-benar memahami JVM dan cara terbaik untuk melakukannya adalah menjadi akrab dengan kode sumber.
Jadi, dalam kata-kata (hampir) dari besar guru ,
use the source
!sumber
read the source
.