HotSpot's tiered compilation uses the interpreter until a threshold of invocations (for methods) or iterations (for loops) triggers a client compilation with self-profiling. The client compilation is used until another threshold of invocations or iterations triggers a server compilation.
Printing HotSpot's flags shows the following flag values with -XX:+TieredCompilation.
intx CompileThreshold = 10000 {pd product}
intx Tier2CompileThreshold = 0 {product}
intx Tier3CompileThreshold = 2000 {product}
intx Tier4CompileThreshold = 15000 {product}
There are too many flags for just a client and server compiler. What compilers are controlled by these flags? If not client and server, what is the purpose of the additional compilers?
Are CompileThreshold and Tier2CompileThreshold ignored in this case? What does Tier3CompileThreshold control when a client compilation is triggered? What does Tier4CompileThreshold control when a server compilation is triggered?
CompileThreshold
do in regards to all of this? – Janes