JVM:执行引擎

你是怎么指定JVM启动模式?(字节跳动)
那你知道-server和-client的区别吗?(美图)

1. 解释器与JIT并存架构

缺省情况下HotSpot VM是采用解释器与即时编译器并存的架构,当然开发人员可以根据具体的应用场景,通过命令显式地为Java虚拟机指定在运行时到底是完全采用解释器执行,还是完全采用即时编译器执行。如下所示:
 

  • -Xint:完全采用解释器模式执行程序;
  • -Xcomp:完全采用即时编译器模式执行程序。如果即时编译出现问题,解释器会介入执行。
  • -Xmixed:采用解释器+即时编译器的混合模式共同执行程序。

2. C1和C2

在HotSpot VM中内嵌有两个JIT编译器,分别为Client Compiler和Server Compiler,但大多数情况下我们简称为C1编译器和C2编译器。开发人员可以通过如下命令显式指定Java虚拟机在运行时到底使用哪一种即时编译器,如下所示:
 

  • -client:指定Java虚拟机运行在Client模式下,并使用C1编译器;
  1. C1编译器会对字节码进行简单和可靠的优化,耗时短。以达到更快的编译速度。
  2. client启动快,占用内存小,执行效率没有server快,默认情况下不进行动态编译,适用于桌面应用程序。
  • -server:指定Java虚拟机运行在Server模式下,并使用C2编译器。
  1. C2进行耗时较长的优化,以及激进优化。但优化的代码执行效率更高。
  2. server启动慢,占用内存多,执行效率高,适用于服务器端应用;

 
由-XX:+RewriteFrequentPairs参数控制。client模式默认关闭,server模式默认开启。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

又食又拎广东亲戚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值