흥미로운 JVM 플래그를 찾았습니다.
java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version
수백 가지의 다양한 옵션을 인쇄합니다. 또한 JVM 동작을 더 잘 진단하는 데 도움이되는 기본값을 인쇄합니다. 또 다른 흥미로운 플래그는 다음과 같습니다.
-XX:+UnlockExperimentalVMOptions
누구든지 그들 각각을 설명하는 문서를 알고 있습니까?
답변
-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
답변
내가 찾은 최고의 문서 는 소스 입니다.
내가 사용했던 이 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
!