HotSpot 的分层编译使用解释器,直到调用(对于方法)或迭代(对于循环)的阈值触发具有自我分析的客户端编译。使用客户端编译,直到另一个调用或迭代阈值触发服务器编译。
打印 HotSpot 的标志使用 -XX:+TieredCompilation 显示以下标志值。
intx CompileThreshold = 10000 {pd product}
intx Tier2CompileThreshold = 0 {product}
intx Tier3CompileThreshold = 2000 {product}
intx Tier4CompileThreshold = 15000 {product}
仅用于客户端和服务器编译器的标志太多。这些标志控制哪些编译器?如果不是客户端和服务器,那么附加编译器的目的是什么?
在这种情况下是否忽略 CompileThreshold 和 Tier2CompileThreshold?触发客户端编译时,Tier3CompileThreshold 控制什么?触发服务器编译时,Tier4CompileThreshold 控制什么?