JVM性能优化之--JIT即时编译

如果我们想将源Java文件运行,需要进行如下步骤:

  1. 使用类加载器将Java文件实时编译成class文件,也就是字节码指令
  2. 使用JVM将编译后的字节码指令,解释为机器码,这是计算机可以直接执行的指令
  3. 计算机直接执行

但是这其中由于class文件到机器码之间不断的转换会消耗相对大量的时间,导致Java的执行,效率不如c等其他语言

于是JVM加入了一款新的技术,JIT---(Just In Time)

什么是JIT?

即时编译,意思就是在运行时JVM如果发现一段代码的字节码被短时间内反复不断的多次执行了,也就是热点代码,

JVM会自动在内存中缓存这段热点代码的机器码指令,若短时间内再出现热点代码被调用的场景则JVM会直接从内存中取出

热点代码的机器码指令执行,这便是JIT,因为JIT,JVM的运行效率将大大提升。

相关推荐
Escalating_xu43 分钟前
【System V 信号量】从 P/V 原语到 Builder 封装:写出可控、可清理的进程互斥组件
java·linux·开发语言·jvm
HEJOO93 小时前
JVM 参数调优实战指南
jvm
码农哈丁5 小时前
从 JVM 到 Cargo:把整个 Kotlin 项目移植到 Rust 的踩坑实录
jvm·rust·kotlin
iNeuOS工业互联网6 小时前
iNeuOS工业互联网操作系统,重要更新:性能优化、安全漏洞与BUG修复,远程控制响应效率大幅提升
性能优化·bug
User_芊芊君子8 小时前
sbt 鸿蒙 PC 适配全记录:从 JVM 构建工具到 HAP_HNP 交付闭环
jvm·华为·harmonyos
小范的技术工坊8 小时前
每日一题gogogo
jvm
Web3&Basketball1 天前
LLM 峰谷定价怎么吃满:一个能对账的错峰调度器
python·性能优化·大模型·任务调度·成本优化·deepseek·推理优化
yunwei371 天前
eBPF 教程:追踪 CUDA GPU 操作
linux·后端·性能优化
天空之城--1 天前
Flutter Drift 完全指南:从原理到实战
jvm·flutter·oracle
狼爷1 天前
磁盘IO打满怎么办?我用5个真实案例,总结了这套可复用的排查方法论
后端·性能优化