深入理解JVM虚拟机第五篇:一些常用的JVM虚拟机(二)

news2025/1/14 1:24:15

文章目录

一:JRockit VM的介绍

二:J9 VM的介绍

三:KVM和CDC/CLDC Hotspot

四:Azul VM的介绍

五:Liquid VM的介绍

六:Apache Harmoney

七:Microsoft JVM

八:Taobao JVM

九:Dalvik VM虚拟机

十:Graal VM虚拟机


一:JRockit VM的介绍

        专注于服务器端应用

        它可以不太关注程序启动速度,因此JRockit内部不包含解析器实现,全部代码都靠即时编译器编译后执行。

        大量的行业基准测试显示,JRockit JVM是世界上最快的JVM。

        使用JRockit产品,客户已经体验到了显著的性能提高 (一些超过了70% )和硬件成本的减少(达50%)       

         全面的Java运行时解决方案组合JRockit面向延迟敏感型应用的解决方案JRockit Real Time提供以毫秒或微秒级的JVM响应时间,适合财务、军事指挥、电信网络的需要MissionControl服务套件,它是一组以极低的开销来监控、管理和分析生产环境中的应用程序的工具。

        2008年,BEA被Oracle收购。oracle表达了整合两大优秀虚拟机的工作,大致在JDK 8中完成。整合的方式是在HotSpot的基础上,移植JRockit的优秀特性。

        高斯林:目前就职于谷歌,研究人工智能和水下机器人

二:J9 VM的介绍

        全称:IBM Technology for Java Virtual Machine,简称IT4J,内部代号:J9

        市场定位与HotSpot接近,服务器端、桌面应用、嵌入式等多用途VM广泛用于IBM的各种Java产品。

        目前,有影响力的三大商用虚拟机之一,也号称是世界上最快的Java虚拟机

        2017年左右,IBM发布了开源J9 VM,命名为OpenJ9,交给Eclipse基金会管理,也称为 Eclipse openJ9

三:KVM和CDC/CLDC Hotspot

        oracle在Java ME产品线上的两款虚拟机为: CDC/CLDC HotSpotImplementation VM

        KVM (Kilobyte)是CLDC-HI早期产品目前移动领域地位尴尬,智能手机被Android和ios二分天下。KVM简单、轻量、高度可移植,面向更低端的设备上还维持自己的一片市场

        智能控制器、传感器
        老人手机、经济欠发达地区的功能手机

        所有的虚拟机的原则:一次编译,到处运行

四:Azul VM的介绍

        前面三大“高性能Java虚拟机使用在通用硬件平台上这里Azul VM和BEA Liquid VM是与特定硬件平台绑定、软硬件配合的专有虚拟机高性能Java虚拟机中的战斗机。

        Azul VM是Azul Systems公司在HotSpot基础上进行大量改进,运行于Azul Systems公司的专有硬件Vega系统上的Java虚拟机。

        每个Azul VM实例都可以管理至少数十个CPU和数百GB内存的硬件资源,并提供在巨大内存范围内实现可控的GC时间的垃圾收集器、专有硬件优化的线程调度等优秀特性。

        2010年,Azul Systems公司开始从硬件转向软件,发布了自己的zingJVM,可以在通用x86平台上提供接近于vega系统的特性。

五:Liquid VM的介绍

        Liquid VM高性能Java虚拟机中的战斗机

        BEA公司开发的,直接运行在自家Hypervisor系统上

        Liquid VM即是现在的JRockit VE (virtual Edition),LiquidVM不需要操作系统的支持,或者说它自己本身实现了一个专用操作系统的必要功能,如线程调度、文件系统、网络支持等。

        随着JRockit虚拟机终止开发,Liquid VM项目也停止了。

六:Apache Harmoney

        Apache也曾经推出过与JDK 1.5和JDK 1.6兼容的Java运行平台Apache Harmony。

        它是IBM和Intel联合开发的开源JVM,受到同样开源的openJDK的压制,Sun坚决不让Harmony获得JCP认证,最终于2011年退役,IBM转而参与OpenJDK

        虽然目前并没有Apache Harmony被大规模商用的案例,但是它的Java类库代码吸纳进了Android SDK。

七:Microsoft JVM

        微软为了在IE3浏览器中支持Java Applets,开发了Microsoft JVM。只能在window平台下运行。

        但确是当时windows下性能最好的Java VM。1997年,Sun以侵犯商标、不正当竞争罪名指控微软成功,赔了sun很多钱。

        微软在windowsXP SP3中抹掉了其VM。现在windows上安装的idk都是HotSpot。

八:Taobao JVM

        由ALiJVM 团队发布。阿里,国内使用Java最强大的公司,覆盖云计算、金融、物流需要解决高并发、高可用、分布式的复合问题。有大量的开源产品。

        电商等众多领域,基于openJDK 开发了自己的定制版本AlibabaJDK,简称AJDK。是整个阿里Java体系的基石。

        基于openJDK Hotspot VM 发布的国内第一个优化、深度定制且开源高性能服务器版Java虚拟机。

        创新的GCIH (GC invisible heap ) 技术实现了off-heap ,即将生命周期较长的Java对象从heap中移到heap之外,并且GC不能管理GCIH内部的Java 对象,以此达到降低GC 的回收频率和提升GC 的回收效率的目的。

        GCIH 中的对象还能够在多个Java 虚拟机进程中实现共享

        使用crc32指今实现 JVM intrinsic 降低JNI 的调用开销

        PMU hardware的Java profiling tool 和诊断协助功能

        针对大数据场景的ZenGCtaobao vm应用在阿里产品上性能高,硬件严重依赖intel的cpu,损失了兼容性,但提高了性能

         目前已经在淘宝、天猫上线,把oracle 官方JVM 版本全部替换了

九:Dalvik VM虚拟机

        谷歌开发的,应用于Android系统,并在Android2.2中提供了JIT,发展迅猛

        Dalvik VM 只能称作虚拟机,而不能称作“Java 虚拟机”,它没有遵循 Java虚拟机规范

        不能直接执行 Java的 class 文件

        基于寄存器架构,不是jvm的栈架构。

        执行的是编译以后的dex(Dalvik Executable) 文件。执行效率比较高。它执行的dex (Dalvik Executable) 文件可以通过class文件转化而来,使用Java语法编写应用程序,可以直接使用大部分的Java API等。

        Android 5.0 使用支持提前编译 (Ahead of Time Compilation,AOT)的ART VM替换Dalvik VM。

十:Graal VM虚拟机

        2018年4月,Oracle Labs公开了Graal VM,号称"Run Programs Faster Anywhere",勃勃野心。与1995年java的”write once,run anywhere"遥相呼应。

        Graal VM在HotSpot VM基础上增强而成的跨语言全栈虚拟机,市以作为“任何语言的运行平台使用。语言包括: Java、Scala、Groovy、Kotlin; C、C++、JavaScript、Ruby、Python、R等

        支持不同语言中混用对方的接口和对象,支持这些语言使用已经编写好的本地库文件工作原理是将这些语言的源代码或源代码编译后的中间格式,通过解释器转换为能被Graal VM接受的中间表示。Graal VM 提供Truffle工具集快速构建面向一种新语言的解释器。在运行时还能进行即时编译优化,获得比原生编译器更优秀的执行效率

        如果说HotSpot有一天真的被取代,Graal VM希望最大。但是Java的软件生态没有丝毫变化。

         具体JVM的内存结构,其实取决于其实现,不同厂商的JVM,或者同一厂商发布的不同版本,都有可能存在一定差异。本套文章主要以oracle HotSpot VM为默认虚拟机。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1008645.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第三方软件测试机构有哪些测试服务软件测试报告收费标准是怎样的?

软件验收机构 一、什么是第三方软件测试机构? 第三方软件测试机构是区别于软件开发公司以及软件需求方的第三方机构,软件企业将软件测试外包给第三方软件测试机构已经成为了行业发展趋势。既省心省力,又降低企业成本,得出的软件测试结果以…

【Proteus仿真】【STM32单片机】四驱寻迹避障小车

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 系统运行后,LCD1602显示红外、超声波检测状态和距离、小车运行状态。可通过K1键可手动切换模式,寻迹、避障、蓝牙遥控;也可通过蓝牙发送指令切换模式; 当处…

绝佳用户体验:构建响应式网页设计的关键原则

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 当谈到前端开发时&#…

使用Java创建一个简单的图书管理系统

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 图书管理系统项目简…

for...in...与for..of...

for...in... 仅迭代自身的属性for...in 语句以任意顺序迭代一个对象的除Symbol以外的可枚举属性,包括继承的可枚举属性。 for ... in是为遍历对象属性而构建的,不建议与数组一起使用,数组可以Array.prototype.forEach()和for ... of const …

Python实现猎人猎物优化算法(HPO)优化Catboost回归模型(CatBoostRegressor算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei& Keynia于2022年提出的一种最新的…

新手如何开始Microstation CE版二次开发

一步步学习MicroStation CE MDL(C)开发 - 技术资料库 - Bentley 中国优先社区 - Bentley Communities https://communities.bentley.com/communities/other_communities/chinafirst/w/chinawiki/57704/microstation-ce-mdl-c一步步学习MicroStation CE A…

python项目制作docker镜像,加装引用模块,部署运行!

一、创建Dockerfile # 基于python:3.10.4版本创建容器 FROM python:3.10.4 # 在容器中创建工作目录 RUN mkdir /app # 将当前Dockerfile目录下的所有文件夹和文件拷贝到容器/app目录下 COPY . /app# 由于python程序用到了requests模块和yaml模块, # python:3.10.4基…

使用Java创建一个待办事项列表

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 待办事项列表项目简…

基于串口通讯的多电机控制技术研究

基于STM32CubeMX生成keil工程 基于proteus 8.7版本进行程序验证 采用了简单的串口通讯协议 基本效果如图 先对电机旋转方向进行指令设置 :221 :320 分别实现对第二个电机正转、第三个电机反转设置 为了方便观测,程序对接受到的串口数据会进行回显。 然后使能电…

用c语言编写出三底模型

以下是一个用C语言实现三底模型的示例代码。这个程序通过循环遍历输入的股票数据&#xff0c;判断是否出现三底形态&#xff0c;如果是&#xff0c;则输出买入信号&#xff0c;否则输出卖出信号。 c语言 #include <stdio.h> #include <stdlib.h> // 判断是否出现…

Python计算机二级知识点整理

1. 一个完整的二叉树包括根节点&#xff0c;左子树和右子树&#xff0c;不同的遍历方式的区别就是访问的顺序的不同&#xff0c;前序遍历是首先访问根节点然后再访问左子树和右子树&#xff0c;中序遍历是访问根节点在访问左子树和右子树之间&#xff0c;后序遍历是先访问左子树…

ElasticSearch 5.6.3 自定义封装API接口

在实际业务中&#xff0c;查询 elasticsearch 时会遇到很多特殊查询&#xff0c;官方接口包有时不便利&#xff0c;特殊情况需要自定义接口&#xff0c;所以为了灵活使用、维护更新 编写了一套API接口&#xff0c;仅供学习使用 当前自定义API接口依赖 elasticsearch 5.6.3 版本…

centos7内存过高排查

centos7内存过高排查 小白教程&#xff0c;一看就会&#xff0c;一做就成。 1.查找使用内存过大的进程 ps查看按内存排序的前3个进程 ps auxw|head -1;ps auxw|sort -rn -k4|head -3 #或 ps aux --sort-%mem | head -n 4 #这里就是4&#xff0c;查看的是前3个进程 2.可以…

Vue自动生成二维码并可下载二维码

遇到一个需求&#xff0c;需要前端自行生成用户的个人名片分享二维码&#xff0c;并提供二维码下载功能。在网上找到很多解决方案&#xff0c;最终吭哧吭哧做完了&#xff0c;把它整理记录一下&#xff0c;方便后续学习使用&#xff01;嘿嘿O(∩_∩)O~ 这个小东西有以下功能特点…

【深入解读Redis系列】(五)Redis中String的认知误区,详解String数据类型

有时候博客内容会有变动&#xff0c;首发博客是最新的&#xff0c;其他博客地址可能会未同步&#xff0c;请认准https://blog.zysicyj.top 首发博客地址 系列文章地址 需求描述 现在假设有这样一个需求&#xff0c;我们要开发一个图像存储系统。要求如下&#xff1a; 该系统能快…

QT QAxWidget控件 使用详解

本文详细的介绍了QAxWidget控件的各种操作&#xff0c;例如&#xff1a;新建界面、使用示例、显示网页、显示pdf、显示Off、源文件详细说明其它文章等等操作。 ActiveX控件是一种可重用的二进制组件&#xff0c;用于在Windows操作系统上提供特定的功能和服务。以下是一些常见的…

python pycharm 下载 安装 自(1)

pycharm 官网 JetBrains: 软件开发者和团队的必备工具 python 官网 Python Release Python 3.11.5 | Python.org 软件安装 因为python需要借助pycharm所以需要安装 下边截图是重要的部分 pycharm python 终端安装 然后进行全局配置 打开pycahrm 可以在扩展里边搜索中…

后端字典的优雅设计

背景 今天讲到的是数据字典的设计。为什么要讲到这个呢&#xff0c;因为我下午在做开发的时候遇到了一个问题。我先扔出来某个表的字段的定义吧&#xff1a; business_type int default 0 comment 0&#xff1a;收款计划&#xff1b;1&#xff1a;付款计划而且我还有一个字典…

【2023年11月第四版教材】第12章《质量管理》(合集篇)

第12章《质量管理》&#xff08;合集篇&#xff09; 1 章节说明2 管理基础3 管理过程3.1 管理ITTO汇总★★★ 4 规划质量管理4.1 数据收集★★★4.2 数据分析★★★4.3 数据表现★★★4.4 质量管理计划★★★4.5 质量测量指标★★★ &#xff08;22下35&#xff09; 5 管理质量…