先对JVM进行一个说明。
jvm只识别字节码,所以jvm跟语言是解耦的,jvm运行的是class文件,像Groovy,Kotlin,Scala等语言,他们都可以转移成字节码,也都可以再jvm上运行,这就是JVM的跨语言的特征。

解释执行与JIT

解释执行:主要是执行字节码指令,一般这些指令会按照顺序解释执行。
JIT:在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化。也称为及时编译。(Just In Time Compiler)

在JDK10之前(列如jdk8)
内置了两个JIT,分别是C1编译器和C2编译器
C1:编译器是一个简单快速的编译器,不优化代码
C2:优化代码,目前无人能维护

分层编译,JDK8之后,默认开启了分层编译

逃逸分析: 实现栈上分配
分析对象动态作用域,当一个对象在方法中定义后,它可能被外部方法所引用

如果是逃逸分析出来的对象可以在栈上分配的话,那么该对象的生命周期就跟随线程了,就不需要垃圾回收。如果是频繁的调用此方法则可以得到很大的性能提高。
采用了逃逸分析后,满足逃逸的对象在栈上分配
没有开启逃逸分析,对象都在堆上分配,会频繁触发垃圾回收(垃圾回收会影响系统性能),导致代码运行慢

JVM学习之---了解JIT相关推荐

  1. JVM学习笔记汇总:结合尚硅谷宋红康老师视频教程及PPT

    JVM学习笔记汇总:结合尚硅谷宋红康老师视频教程及PPT 第一章:JVM虚拟机的介绍 1.1虚拟机的分类 虚拟机通常分为两类:系统虚拟机和程序虚机.其中,系统虚拟机是指完全对物理计算机的仿真,而程序虚 ...

  2. JVM学习笔记(自用)

    JVM学习笔记(自用) 文章目录 JVM学习笔记(自用) 1.简介 2.程序计数器 3. 虚拟机栈 4. 方法区 5. 直接内存 6. 垃圾回收 Young Collection Young Coll ...

  3. Java虚拟机JVM学习06 自定义类加载器 父委托机制和命名空间的再讨论

    Java虚拟机JVM学习06 自定义类加载器 父委托机制和命名空间的再讨论 创建用户自定义的类加载器 要创建用户自定义的类加载器,只需要扩展java.lang.ClassLoader类,然后覆盖它的f ...

  4. JVM学习笔记(一)------的基本结构

    从Java视台的逻辑结构.我们能够从图中学习JVM: 您可以从图表清楚地看到Java该平台包括各种逻辑模块,还可以学习JDK与JRE差异 于JVM它们的物理结构,我们可以看一下从图计划: 为JVM学习 ...

  5. Java虚拟机JVM学习05 类加载器的父委托机制

    Java虚拟机JVM学习05 类加载器的父委托机制 类加载器 类加载器用来把类加载到Java虚拟机中. 类加载器的类型 有两种类型的类加载器: 1.JVM自带的加载器: 根类加载器(Bootstrap ...

  6. JVM学习笔记(四)------内存调优

    首先需要注意的是在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提 ...

  7. JVM学习笔记(四)

    JVM学习笔记(四) 文章目录 JVM学习笔记(四) 笔记链接 1.GC算法 1.1GC-判断对象是否可回收 1.1.1 引用计数法 1.1.1 可达性分析 1.2GC-回收算法 标记清除法(Mark ...

  8. jvm学习笔记(三)

    jvm学习笔记(三) 文章目录 jvm学习笔记(三) 1.全部笔记链接 2.堆 2.1堆的划分 使用JVM参数查看划分 Hotspot堆内存划分图(JDK8之前) 2.2 GC对堆的回收 GC的种类 ...

  9. jvm学习笔记(二)

    jvm学习笔记(二) 文章目录 jvm学习笔记(二) 1.全部笔记链接 2. Native关键字 3.关于JVM规范 3.1 JVM规范中运行时数据区的概念 4.HotSpot的JVM运行时数据区 4 ...

最新文章

  1. 【翻译】QEMU内部机制:顶层概览
  2. vbs控制电脑说话,vbs获取时间,vbs小程序
  3. java 运行环境测试_java – 在多个环境中执行JUnit测试的配置
  4. 全国计算机等级考试题库二级C操作题100套(第73套)
  5. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 16丨市场分析 II【难度困难】​
  6. python在windows配置_Python在windows平台的多版本配置
  7. 实施微服务应该具备哪些先决条件?
  8. 程序员面试宝典及Java面试题解析2021年
  9. cad卸载工具_如何卸载AutoCAD 附上清理注册表方法
  10. 计算机绘图 cad),CAD计算机绘图入门
  11. 不是后端也应该知道的「 web 服务、子服务、服务的部署」
  12. 大揭秘(1):网店背后的隐秘产业链【连载】
  13. java获取域名的mx记录,A记录、CNAME、MX记录、NS记录
  14. 蓝桥杯练习题--Fibonacci数列
  15. 自动白平衡(AWB)算法---1,色温曲线
  16. python中心性评价_centrality 计算复杂网络中的节点或边 数中心性,基于python的 工具箱 matlab 238万源代码下载- www.pudn.com...
  17. matlab极性电容叫什么,什么是无极性电容
  18. java编程之如何计算正弦值、余弦值和正切值
  19. 想练八段锦?扔掉可爱漫画版吧,现在出真人教练版了!
  20. Android设置屏幕亮度

热门文章

  1. 十行代码写个摸鱼神器,帮你自动化操作Excel
  2. 学术-物理-维空间:二维空间
  3. 海思开发板实用技巧集
  4. 用友系统客户端登录不上服务器,图文详解用友客户端连不上服务器解决方法.pdf...
  5. 程序员成才的关键——内在兴趣和善于发现
  6. Excel绘制带象限散点图的4种办法
  7. Thinkphp5.1实现发送邮箱验证码
  8. Wise Duplicate Finder(重复文件查找工具)v1.2.9.40中文免费版
  9. 多图带您领略Windows 10 Server虚拟化平台风采
  10. linux文件目录基本操作实验结论,实验 Linux文件和目录操作