1. A computer-implemented method of interpreting a method bytecode, comprising: determining whether a called method is a bottleneck method; generating an interpreter loop for the called method if the called method is determined to be the bottleneck method; and interpreting a bytecode of the called method using the generated interpreter loop.