use tiered compilation to decrease jvm startup cost

@yilongli please review