今天看啥  ›  专栏  ›  阿里云开发者

深入探讨Java的分层编译

阿里云开发者  · 公众号  · 科技公司  · 2024-07-18 08:30

文章预览

阿里妹导读 本文主要探讨Java虚拟机(JVM)中的分层编译(Tiered Compilation)机制及其对程序性能的影响。 0x00 前言 一开始接触到分层编译是因为我们这的服务每次发布/重启后都会短暂地出现CPU满线程池满的情况,然后过一段时间又能自动恢复。排查后发现是启动时JVM将部分热点代码编译为机器代码导致的,这个过程中JIT编译器会占用大量的CPU。 一个Java的源代码文件变成可直接执行的机器指令,需要经过两段编译,第一段是把 .java 文件转换成 .class 文件。第二段是把 .class 文件转换为机器指令。 第一段的编译相对固定,也就是将Java代码翻译为字节码并打包为jar的过程。而字节码的执行则有两种方式,第一种是由解释器(Interpreter)即时解释执行,第二种则是由JIT编译器编译执行。具体采用哪种执行方式则主要看当前的代码是否为「热点代码(Hot Spo ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览