网站地图    收藏   

主页 > 后端 > java >

JVM系列之:JIT中的Virtual Call接口操作

来源:自学PHP网    时间:2020-09-25 15:59 作者:小飞侠 阅读:

[导读] JVM系列之:JIT中的Virtual Call接口操作...

今天带来JVM系列之:JIT中的Virtual Call接口操作教程详解

简介

上一篇文章我们讲解了Virtual Call的定义并举例分析了Virtual Call在父类和子类中的优化。

JIT对类可以进行优化,那么对于interface可不可以做同样的优化么?

一起来看看吧。

最常用的接口List

List应该是大家最最常用的接口了,我想这个大家应该不会反驳。

public interface List extends Collection {

今天我们就拿List来做例子,体验一下JIT优化接口的奥秘。

还是上代码,要分析的代码如下:

public class TestVirtualListCall {

  public static void main(String[] args) throws InterruptedException {
    List list=new ArrayList<>();
    for (int i = 0; i < 10000; i++)
    {
      doWithVMethod(list);
    }
    Thread.sleep(1000);
  }

  public static void doWithVMethod(List list)
  {
    list.add("www.jb51.net");
  }
}

如果在命令行运行,大家记得在运行时添加参数-XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -XX:-Inline

直接看JIT Watcher的结果:

史上最通俗理解的Java死锁代码演示
下一篇:SpringBoot @Validated注解实现参数分组校验的方法实例

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论