如题,我理解运行时编译的好处可以是可以省启动时间、可以做热部署热替换(比如jsp热替换)
但实际上现在网站开发用不到jsp,上线时hotswap的流程也是在别的机器上把整个项目部署好,再在负载均衡层切流量过去,用不到jvm提供的hotswap特性
既然如此,jvm是不是提前把class编译成机器码更好,为什么还要搞jit呢?
如题,我理解运行时编译的好处可以是可以省启动时间、可以做热部署热替换(比如jsp热替换)
但实际上现在网站开发用不到jsp,上线时hotswap的流程也是在别的机器上把整个项目部署好,再在负载均衡层切流量过去,用不到jvm提供的hotswap特性
既然如此,jvm是不是提前把class编译成机器码更好,为什么还要搞jit呢?
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
为了平衡编译时间和运行效率。事实上经过一段时间后,JVM会把热点代码编译成机器码。详情可以看看极客时间《深入拆解Java虚拟机》第1讲“Java代码是怎么运行的”。作者是Oracle GraalVM虚拟机开发者,Oracle高级研究员,计算机博士。