阿里资深架构师:讲讲我对JVM架构的理解( 五 )

5.本地方法栈– 本地方法栈保存本地方法信息 。 对每一个线程 , 将创建一个单独的本地方法栈 。

3. 执行引擎

分配给运行时数据区的字节码将由执行引擎执行 。 执行引擎读取字节码并逐段执行 。

解释器– 解释器能快速的解释字节码 , 但执行却很慢 。 解释器的缺点就是当一个方法被调用多次 , 每次都需要重新解释 。

JIT 编译器– JIT编译器消除了解释器的缺点 。 执行引擎利用解释器转换字节码 , 但如果是重复的代码则使用JIT编译器将全部字节码编译成本机代码 。 本机代码将直接用于重复的方法调用 , 这提高了系统的性能 。

1.中间代码生成器– 生成中间代码

2.代码优化器– 负责优化上面生成的中间代码

3.目标代码生成器– 负责生成机器代码或本机代码

4.探测器(Profiler)– 一个特殊的组件 , 负责寻找被多次调用的方法 。

推荐阅读