use tiered compilation to decrease jvm startup cost