Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java -XX:-打印编译日志记录方法_Java_Jvm - Fatal编程技术网

Java -XX:-打印编译日志记录方法

Java -XX:-打印编译日志记录方法,java,jvm,Java,Jvm,当JVM记录我的程序类的编译/反编译时,它是在开始编译/反编译之前还是在完成编译/反编译之后记录 我使用-XX:+printcomilation请求JVM登录 谢谢 罗曼 它是在开始编译/反编译之前记录日志,还是在完成编译/反编译之后记录日志 这些方法的编译是在后台进行的,这些消息的日志记录是异步的。i、 e.它可能被严重延迟。因此,当您看到日志时,并不表示您是何时编写的 生成的代码总是比字节码大得多。JVM“知道”用于许多度量的字节码的原始大小,即使在编译代码并重新编译代码之后也是如此。事实上

当JVM记录我的程序类的编译/反编译时,它是在开始编译/反编译之前还是在完成编译/反编译之后记录

我使用
-XX:+printcomilation
请求JVM登录

谢谢

罗曼

它是在开始编译/反编译之前记录日志,还是在完成编译/反编译之后记录日志

这些方法的编译是在后台进行的,这些消息的日志记录是异步的。i、 e.它可能被严重延迟。因此,当您看到日志时,并不表示您是何时编写的

生成的代码总是比字节码大得多。JVM“知道”用于许多度量的字节码的原始大小,即使在编译代码并重新编译代码之后也是如此。事实上,它打印的是原始大小,并不表示消息何时触发


默认情况下,选项
-XX:-printcomployment
已关闭时将其关闭。HotSpot文档有点混乱,因为它显示了默认选项。这意味着您实际上想要
-XX:+printcomployment

顺便说一句,这也意味着我看到使用的许多选项都是文档中记录的默认选项,即人们设置它们时没有意识到它们没有改变任何东西。

根据,这是关于该主题的少数参考之一:

大小

这是该方法的原始字节码的大小。这不是问题 生成的本机代码的大小。编译器任务甚至没有执行 然而,当PrintCompilation打印出日志时;它不可能知道 预先生成的代码的大小


它是在汇编之前印刷的。这就是为什么尺寸是原始尺寸,而不是优化尺寸

根据热点来源
printcomilation
在开始编译方法之前打印一行(请参阅)

要在编译完成后发布其他编译器信息,请使用

-XX:+UnlockDiagnosticVMOptions -XX:+PrintCompilation2
和/或

-XX:+UnlockDiagnosticVMOptions -XX:+TraceNMethodInstalls

嗨,我的问题有一个错误。我的意思是“我使用-XX:+printcomilation”而不是“我使用-XX:-printcomilation”,我试图在代码中找到它(请参阅),但没有找到。我的猜测是,在编译过程中,它会在不同的地方打印信息(即在不同的地方打印几次)。完美的答案,我希望我能+200或更多