[java] 모든 JVM 플래그 인쇄

흥미로운 JVM 플래그를 찾았습니다.

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

수백 가지의 다양한 옵션을 인쇄합니다. 또한 JVM 동작을 더 잘 진단하는 데 도움이되는 기본값을 인쇄합니다. 또 다른 흥미로운 플래그는 다음과 같습니다.

-XX:+UnlockExperimentalVMOptions

누구든지 그들 각각을 설명하는 문서를 알고 있습니까?



답변

-XX:+JVMCIPrintPropertiesGraal 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!


답변