论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
物联网
›
物联网
›
Java虚拟机(JVM)家族发展史及版本对比
Java虚拟机(JVM)家族发展史及版本对比
不到断气不罢休
论坛元老
|
3 天前
|
显示全部楼层
|
阅读模式
楼主
主题
1700
|
帖子
1700
|
积分
5100
Java虚拟机(JVM)家族发展史及版本对比
一、JVM家族发展史
1. 早期阶段(1996-2000)
Classic VM(Java 1.0-1.1)
:
厂商
:Sun Microsystems(Oracle前身)。
特点
:
首个JVM实现,支持根本的字节码表明实验。
无JIT编译器,性能较低。
垃圾接纳简单(标记-清除算法)。
适用场景
:早期Java Applet和简单应用。
Just-In-Time(JIT) VM(Java 1.1.4+)
:
改进
:引入JIT编译器,将热门代码编译为当地代码提升性能。
局限性
:仅对特定方法优化,整体性能仍有限。
2. 成熟阶段(2000-2010)
HotSpot JVM(Java 1.3+,2000年)
:
厂商
:Sun Microsystems(后由Oracle维护)。
核心特性
:
分代垃圾接纳
(Young/Old代划分)。
自顺应优化
(Adaptive Optimization,动态调解JIT战略)。
Server模式与Client模式
(高性能服务器 vs. 轻量级客户端)。
关键版本
:
Java 5(1.5)
:引入并发标记清除(CMS)垃圾接纳器。
Java 6
:优化JIT编译器,支持动态编译更多代码。
Java 7
:改进G1垃圾接纳器(实验性)。
3. 现代化阶段(2010至今)
HotSpot JVM持续演进
:
Java 8-11
:
G1成为默认GC
(Java 9起)。
ZGC(可中断暂停GC)
(Java 11预览,Java 15正式版)。
Shenandoah GC
(Java 12引入,低延长优化)。
Java 14+
:
Vector API
(SIMD指令优化)。
虚拟线程(Virtual Threads)
(Java 19正式版,轻量级并发)。
开源与生态扩展
:
OpenJDK
(2006年开源):
成为JVM实现的开源基准,Oracle JDK基于此构建。
社区贡献者包括Red Hat、Amazon、IBM等。
替代JVM实现
:
GraalVM
(Oracle,2017年):
支持多语言(Java/JavaScript/Ruby等)。
Graal编译器
:AOT编译(Substrate VM)提升启动速度。
Truffle框架
:动态语言优化。
Eclipse OpenJ9
(IBM,2017年开源):
低内存占用,适合微服务和容器化部署。
支持JIT和AOT混合编译。
Azul Zing
(Azul Systems,2004年):
专为低延长计划,C4垃圾接纳器(无停顿GC)。
适用于高频交易、及时系统。
移动与嵌入式JVM
:
Dalvik VM
(Android 1.5-4.4):
针对移动装备优化,实验.dex文件(非.class)。
ART(Android Runtime)
(Android 5.0+):
AOT编译(应用安装时编译为原生代码)。
替代Dalvik,提升性能和内存服从。
二、关键虚拟机对比
1. HotSpot JVM(Oracle JDK/OpenJDK)
适用场景
:企业级应用、服务器端、微服务。
核心特性
:
垃圾接纳器
:Serial、Parallel、CMS、G1、ZGC、Shenandoah。
JIT编译
:C1(客户端)、C2(服务端)。
模块化
(Java 9+):JPMS支持模块化JDK。
优势
:生态成熟、兼容性高、社区支持强。
2. GraalVM
适用场景
:混合语言应用、高性能微服务、AOT编译场景。
核心特性
:
多语言支持
:Java、JavaScript、Python、Ruby等。
Substrate VM
:AOT编译生成独立本机镜像(启动快、占用小)。
Graal编译器
:替代C2编译器,优化复杂代码。
优势
:跨语言协作、启动性能优化。
3. Eclipse OpenJ9
适用场景
:容器化部署、内存敏感环境、云原生应用。
核心特性
:
低内存占用
:比HotSpot淘汰30%-50%内存。
JIT/AOT混合编译
:提前编译部门代码提升启动速度。
Eclipse基金会维护
:与Eclipse生态深度集成。
优势
:资源服从高、适合Kubernetes等容器环境。
4. Azul Zing
适用场景
:低延长系统(如金融交易、及时分析)。
核心特性
:
C4垃圾接纳器
:停顿时间<1ms(无STW)。
无限制堆内存
:支持TB级堆,适合大数据应用。
性能分析工具
:及时监控GC和线程行为。
优势
:极致低延长,适合高频交易等场景。
5. Android ART
适用场景
:Android应用。
核心特性
:
AOT编译
:应用安装时编译为原生代码。
增量编译
:运行时优化未编译部门。
Profilo工具
:性能分析与调试。
优势
:启动快、运行服从高,替代Dalvik的升级版。
6. IBM J9(旧版,被OpenJ9取代)
历史意义
:
IBM早期JVM实现,后开源为OpenJ9。
支持Z/OS等大型主机系统。
三、表格总结:JVM家族版本及特性对比
虚拟机名称
厂商/泉源
发布时间
核心特性
适用场景
优势与局限
Classic VM
Sun Microsystems1996纯表明实验,无JIT早期Java Applet性能低,仅底子功能支持
HotSpot JVM
Oracle/OpenJDK2000分代GC、JIT编译、G1/ZGC/Shenandoah、模块化(Java 9+)企业级应用、服务器生态成熟,但资源占用较高
GraalVM
Oracle2017多语言支持、AOT编译(Substrate VM)、Graal编译器混合语言、微服务、AOT场景需学习成本,某些GC特性依赖HotSpot
Eclipse OpenJ9
IBM/Eclipse2017低内存占用、JIT/AOT混合编译容器化、云原生性能调优复杂,社区支持有限
Azul Zing
Azul Systems2004C4无停顿GC、TB级堆内存、低延长高频交易、及时系统闭源商业版,成本较高
Android ART
Google2014AOT编译、增量编译、Profilo工具Android应用专为移动优化,不兼容桌面JVM
Dalvik VM
Google2008针对移动装备优化,实验.dex文件Android 1.5-4.4性能较低,已被ART取代
四、关键总结
HotSpot JVM
:Java生态的核心,持续演进(GC算法、编译器优化)。
GraalVM
:多语言、AOT编译的革新,适合混合架构。
OpenJ9
:资源服从优先,适合容器化部署。
Zing
:低延长领域的标杆,专为极端场景计划。
ART
:移动领域的尺度,替代Dalvik提升性能。
未来趋势
:
虚拟线程
(Java 20):办理线程壅闭问题,提升并发能力。
AOT编译
(GraalVM/Substrate):优化启动时间和部署体积。
低延长GC
(ZGC/Shenandoah):扩展及时系统适用性。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
不到断气不罢休
论坛元老
这个人很懒什么都没写!
楼主热帖
Spark的一些重要概念
手绘地图深度解析:类型、风格、功能、 ...
从SAP ECC升级到SAP S4HANA, 几个Key P ...
数据库设计员工管理系统
【Redis高手修炼之路】初学Redis——概 ...
MySQL触发器
【高效学数据库】第一范式、第二范式、 ...
物联网无线数传通信模块设备常见的几种 ...
19.HVV溯源
用Python计算从1到500之间偶数的和 ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
Postrge-SQL技术社区
运维.售后
容器及微服务
公有云
IOS
数据仓库与分析
快速回复
返回顶部
返回列表