JVM の TieredStopAtLevel

64bitのJava VMにはClient VM(-clientオプション)が付属していなくて、Server VMだと32bitのClient VMほど速く起動しないなー、って思ってたんだけど、64bitでも-XX:+TieredCompilationと合わせてこのオプションつけると-clientとほぼ同じような最適化になるっぽい。JBossの起動だと30%くらい時間短縮する。

64bit Java VMでも -XX:TieredStopAtLevel=1 で高速起動 - nekopの日記

TieredStopAtLevel って何ぞ?と思い調べていたら hotspot/src/share/vm/runtime/advancedThresholdPolicy.hpp にコメントされていた。c2コンパイラまでは手を出さなくなる様子。

* - TieredStopAtLevel, is used mostly for testing. It allows to bypass the policy logic and stick
* to a given level. For example it's useful to set TieredStopAtLevel = 1 in order to compile everything
* with pure c1.

TieredCompilation は 6u25 で追加されたオプション
6u25releasenotes