打开控制台,运行以下命令:java -XX:+PrintFlagsFinal -client -version |grep -E 'CompileThreshold|MaxHeapSize'
:
使用以上命令,实际要查看的是Client模式的JIT编译阈值和最大堆,不过由于64位的虚拟机好像只支持server模式,所以以上的命令输出结果还是server模式的JIT编译阈值和最大堆,然后mixed mode表示混合模式。
再运行该命令查看server模式的JIT编译阈值和最大堆:java -XX:+PrintFlagsFinal -server -version |grep -E 'CompileThreshold|MaxHeapSize'
,结果如下:
会发现输出的结果和之前的结果是一样的,这也侧面证明了,64位的虚拟机只支持server模式。
总结
从以上截图可以得出结论,在该机器上,在Server模式下,JIT编译阈值的默认值为10000,即函数被调用10000次后,会进行JIT编译,系统最大堆则为2G,虽然这里看不到Client模式下的的结果,不过这里也可以给出个答案,在Client模式下,JIT编译阈值的默认值为1500,最大堆就得根据实际情况决定了,这里主要是了解下-XX:+PrintFlagsFinal
参数的使用。