不会还不知道JVM的发展史吧?

JVM

一、HotSpot虚拟机中含有两个即时编译器

1 .C1 编译耗时短输出代码优化成都较低的但输出代码程度较低的客户端编译器
2.C2编译耗时长输出代码优化程度也更高但输出代程度也高的客户端编译器

Graal 编译器是C2的替代者 Sea-of-Nodes高级中间表示High IR形式

C2->Graal 但是 Graal-X-C2

2.1Graal比C2更加复杂的优化

​ 部分逃逸分析 激进预测性优化 支持预测性假设

二、向Native迈进

现阶段java缺点:

不需要长时间运行 小型化的应用 不需要跑百兆jre 大型单体应用架钩向小型微服务应用框架发展的技术潮流下

单个微服务不需要数十数百的内存 而是高可用的服务集群 单个服务要7*24小时不间断运行 随时中断更新 现在的只需要启动快 高性能 执行时间短

在最近几个jdk

已经陆续推出跨进程可以面向用户程序的类型信息缓存 提升下一次启动熟读 appCDS 开始支持用户的程序代码 无操作垃圾收集器

注意:提前编译是相对提前编译的概念 提前编译能带来最大好处java虚拟机加载已经编译成二进制库之后就够直接掉哟是哪个 无需等待及时编译器在运行是将其编译成二进制机器码 理论上可以减少及时编译带来的预热时间减少java应用场给人带来的第一运行慢的不良体验
破坏java 一次编写到处运行的承诺 必须为每个不统的操作系统去编译不同硬件操作系统去编译对应的发行包 也显著降低了java链接过程的动态习惯 必须要求加载的代码在编译期就已经全部已知 而不能在运行期间确定
目前可以有这种显示的是:C2->GraalVM2.0 ->SubStrate VM

SubStrate Vm带来的好处就是显著降低了内存占用以及启动时间 由于HotSpot本身有一定的内存消耗 最低也要几十MB Sub VM 其内存占用和启动时间与运行在HotSpot上相比有5-50倍差距

Graal VM支持其他语言不会有重量的运行负担 运行内存3,4M 速度与V8持平

三、重构 HotSpot架构 具有模块化能力和足够开放性 监控 执行编译 内存管理

已经增强语言

在这里插入图片描述

正在改进中语言

在这里插入图片描述

四、获取源码

openJDK日益成熟

在这里插入图片描述

第一种获取

在这里插入图片描述

第二种获取

在这里插入图片描述

接下来会继续更新学习笔记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值