使用-XX:+;生成output.cfg文件的PrintCFGToFile jvm选项?

使用-XX:+;生成output.cfg文件的PrintCFGToFile jvm选项?,jvm,jvm-hotspot,control-flow,jvm-arguments,Jvm,Jvm Hotspot,Control Flow,Jvm Arguments,我安装并运行了以下命令: java-XX:+printcfgtofiletest 但找不到包含打印信息的文件。。。我在Linux和Windows操作系统上都试过了,但没有成功。放弃后,我从源代码(,Ubuntu)构建了JDK,但没有成功,同样,它打印“VM选项”+PrintCFGToFile”,但没有在执行类的目录中创建文件,也没有在JDK bin目录中创建文件。。。我在文件系统上查找“output.cfg”,没有找到任何东西。。。我检查了源代码,似乎该文件的名称真的是“output.cfg”(

我安装并运行了以下命令:

java-XX:+printcfgtofiletest

但找不到包含打印信息的文件。。。我在Linux和Windows操作系统上都试过了,但没有成功。放弃后,我从源代码(,Ubuntu)构建了JDK,但没有成功,同样,它打印
“VM选项”+PrintCFGToFile”
,但没有在执行类的目录中创建文件,也没有在JDK bin目录中创建文件。。。我在文件系统上查找“output.cfg”,没有找到任何东西。。。我检查了源代码,似乎该文件的名称真的是“output.cfg”(如果我没弄错的话,它是CFGPrinter)


怎么了?是否应指定任何附加选项?如何以及从何处获取此文件的控制流图信息?

非常感谢OpenJDK邮件列表,特别是感谢Krystal Mok没有回答我的这个问题,不要在这里留下这个问题的答案,并与社区共享:

热点中有两个JIT:
1) C1 aka客户端准时制
2) C2 aka服务器JIT
由于我使用Ubuntu,HotSpot使用C2编译器,PrintCFGToFile只应用于C1

如果您真的希望看到此标志在当前平台上工作,您可能需要启用-XX:+tieredcomployment

这是一个建议,因此解决方案是:

java-XX:+PrintCFGToFile-XX:+tieredcomilation测试

运行它,我会在文件夹中获得output.cfg文件,并执行类(如预期的那样)


非常感谢OpenJDK邮件列表,特别是感谢Krystal Mok,他没有回答我的这个问题,也没有留下这个问题的答案,并与社区分享:

热点中有两个JIT:
1) C1 aka客户端准时制
2) C2 aka服务器JIT
由于我使用Ubuntu,HotSpot使用C2编译器,PrintCFGToFile只应用于C1

如果您真的希望看到此标志在当前平台上工作,您可能需要启用-XX:+tieredcomployment

这是一个建议,因此解决方案是:

java-XX:+PrintCFGToFile-XX:+tieredcomilation测试

运行它,我会在文件夹中获得output.cfg文件,并执行类(如预期的那样)

关于C1/C2的说法是正确的。及 只有通过JIT编译的方法才能生成CFG,
-XX:+printcomilation
option可以报告编译了哪个方法。

关于C1/C2是正确的。及 只有通过JIT编译的方法才能生成CFG
-XX:+printcomilation
option可以报告编译的方法