现在web开发用不到jsp,那为什么jvm还要用动态编译(jit),而不是提前编译好(aot)?

新手上路,请多包涵

如题,我理解运行时编译的好处可以是可以省启动时间、可以做热部署热替换(比如jsp热替换)
但实际上现在网站开发用不到jsp,上线时hotswap的流程也是在别的机器上把整个项目部署好,再在负载均衡层切流量过去,用不到jvm提供的hotswap特性
既然如此,jvm是不是提前把class编译成机器码更好,为什么还要搞jit呢?

阅读 2.8k
3 个回答

  为了平衡编译时间和运行效率。事实上经过一段时间后,JVM会把热点代码编译成机器码。详情可以看看极客时间《深入拆解Java虚拟机》第1讲“Java代码是怎么运行的”。作者是Oracle GraalVM虚拟机开发者,Oracle高级研究员,计算机博士。

因为jvm是java virtual machine不是jsp virtual machine

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题