jvm oracle sun,JVM - 常见的JVM种类
HotSpot VM
HotSpot VM是绝对的主流。大家用它的时候很可能就没想过还有别的选择,
或者是为了迁就依赖了Oracle/Sun JDK某些具体实现的烂代码而选择用HotSpot VM省点心。
Oracle / Sun JDK、OpenJDK的各种变种(例如IcedTea、Zulu),用的都是相同核心的HotSpot VM。
当大家说起“Java性能如何如何”、“Java有多少种GC”、“JVM如何调优”云云,经常默认说的就是特指HotSpot VM。可见其“主流性”。
JDK8的HotSpot VM已经是以前的HotSpot VM与JRockit VM的合并版,也就是传说中的“HotRockit”,只是产品里名字还是叫HotSpot VM。
这个合并并不是要把JRockit的部分代码插进HotSpot里,而是把前者一些有价值的功能在后者里重新实现一遍。移除PermGen、Java Flight Recorder、jcmd等都属于合并项目的一部分
不过要留意的是,这里的HotSpot VM特指“正常配置”版,而不包括“Zero / Shark”版。
Wikipedia那个页面上把后者称为“Zero Port”。用这个版本的人应该相当少,很多时候它的release版都build不成功
J9 VM
J9是IBM开发的一个高度模块化的JVM。在许多平台上,IBM J9 VM都只能跟IBM产品一起使用。这不是技术限制,而是许可证限制。
例如说在Windows上IBM JDK不是免费公开的,而是要跟IBM其它产品一起捆绑发布的;
使用IBM Rational、IBM WebSphere的话都有机会用到J9 VM(也可以自己选择配置使用别的Java SE JVM)。
根据许可证,这种捆绑在产品里的J9 VM不应该用于运行别的Java程序…大家有没有自己“偷偷的”拿来跑别的程序IBM也没力气管
(咳咳而在一些IBM的硬件平台上,很少客户是只买硬件不买配套软件的,IBM给一整套解决方案,里面可能就包括了IBM JDK。
这样自然而然就用上了J9 VM。
所以J9 VM得算在主流里,虽然很少是大家主动选择的首选。
J9 VM的性能水平大致跟HotSpot VM是一个档次的。有时HotSpot快些,有时J9快些。
不过J9 VM有一些HotSpot VM在JDK8还不支持的功能,最显著的一个就是J9支持AOT编译和更强大的class data sharing
JRockit
JRockit以前Java SE的主流JVM中还有JRockit,跟HotSpot与J9一起并称三大主流JVM。
这三家的性能水平基本都在一个水平上,竞争很激烈。
自从Oracle把BEA和Sun都收购了之后,Java SE JVM只能二选一,JRockit就炮灰了。
JRockit最后发布的大版本是R28,只到JDK6;原本在开发中的R29及JDK7的对应功能都没来得及完成项目就被终止了。
参考:
https://www.zhihu.com/question/29265430?sort=created
https://en.wikipedia.org/wiki/Comparison_of_Java_virtual_machines
http://hllvm.group.iteye.com/group/topic/17147
http://blog.csdn.net/yano_nankai/article/details/50957578
jvm oracle sun,JVM - 常见的JVM种类相关推荐
- JVM - 常见的JVM种类
HotSpot VM HotSpot VM是绝对的主流.大家用它的时候很可能就没想过还有别的选择, 或者是为了迁就依赖了Oracle/Sun JDK某些具体实现的烂代码而选择用HotSpot VM省点 ...
- java hprof 分析_[转]Sun JDK自带JVM内存使用分析工具HProf
Sun JDK自带JVM内存使用分析工具HProf 2008-10-14 11:27 Sun JDK自带JVM内存使用分析工具HProf 使用Sun JDK自带JVM内存使用分析工具HPr ...
- JVM的内存结构,Eden和Survivor比例;JVM中一次完整的GC流程,对象如何晋升到老年代,说说你知道的几种主要的JVM参数;CMS 常见参数解析;.你知道哪几种垃圾收集器,各自的优缺点
47.JVM的内存结构,Eden和Survivor比例 49.JVM中一次完整的GC流程是怎样的,对象如何晋升到老年代,说说你知道的几种主要的JVM参数 50.-XX:+CMSScavengeBefo ...
- 关于JVM调优的工具及JVM 常见调优参数
六个命令行排查工具 我们一般使用 JDK 自带的 6 个命令行工具来排查JVM.它们分别是:jps.jstat.jinfo.jmap.jhat 和 jstack,它们都位于 JDK 的 bin 目录下 ...
- JVM实用参数(一)JVM类型以及编译器模式
原文地址:https://blog.codecentric.de/en/2012/07/useful-jvm-flags-part-1-jvm-types-and-compiler-modes/ 译者 ...
- 【Java架构师】JVM性能优化(一)JVM技术入门下
JVM性能和"一次编译,到处运行"的挑战 我有新的消息告诉那些固执的认为Java平台本质上是缓慢的人.当Java刚刚做为企业级应用的时候,JVM被诟病的Java性能问题已经是十几年 ...
- JVM虚拟机(最详细的jvm总结)
我跟你讲一下我对于java的理解吧 java最大的特点就是平台无关性,一次编译,到处运行. Java源码首先被编译成字节码,再由不同平台的JVM进行解析,JAVA语言在不同的平台上运行时不需要进行重新 ...
- 白话Elasticsearch67-不随意调节jvm和thread pool的原因jvm和服务器内存分配的最佳实践
文章目录 概述 不随意调节jvm和thread pool的原因 jvm gc threadpool jvm和服务器内存分配的最佳实践 jvm heap分配 将机器上少于一半的内存分配给es 为什么不要 ...
- JVM调优笔记:认识JVM内存模型(jdk1.8)
文章目录 1.什么是JVM 2.jdk.jre.jvm关系 3.JVM执行过程 4.JVM执行程序的过程 5.JVM运行时数据区 虚拟机栈(线程私有) 本地方法栈(线程私有) 程序计数器(线程私有) ...
最新文章
- 计算机控制系统中的模拟输入通道需应用,远程西安交通大学17年3月课程考试《计算机控制技术》作业考核试题...
- linux curl没有内容,curl在tcpdump中没有显示输出
- Ember.js如何与后端服务交互?adapter、store、ember data关系揭秘
- 关于windows注册表重定向和虚拟化分析
- Spark SQL读数据库时不支持某些数据类型的问题(Timestamp with local Timezone)
- limux php启动_linux下nginx与php设置开机启动代码
- 应用开发专家一席谈:开发低代码,上手低门槛,AppCube使能Citizen Developer,人人都是开发者
- 软件界面是怎么做出来的_电脑时间管理软件,每天要做的事情会有对话框跳出来提醒的便签软件...
- 快速掌握 10 个 HTML5 必备技巧
- 远程下载马bypass waf
- 大连理工大学在CVPR18大规模精细粒度物种识别竞赛中获得冠军
- KFD algorithm
- python快速整理excel_python批量处理excel文件数据
- linux终端怎么设置monaco,[Linux]Vim设置Monaco字体Vim颜色模板
- 极域课堂管理系统软件V6.0 2016 豪华版
- [C++]学生学籍管理系统
- jQuery常用功能大全
- matlab绘制椭球ellipsoid函数
- c语言美元转换人民币的程序,【其它】编程题: 1.编写一个人民币和美元的双向汇率转换程序,实现美元和人民币转换,汇率:1美元=6.92人民币...
- 王选计算机研究院,北京大学
热门文章
- 51CTO寄来的奖品
- java hashmap 的api_JAVA基础--JAVA API集合框架(ArrayList、HashSet、HashMap使用)
- python中括号的作用_Python3--中括号[]与冒号:在列表中的作用
- bat 存储过程返回值_使用Mybatis过程中遇到的坑
- markdown 语法_markdown特殊语法之上下标
- php数组验证用户名密码,求个php数组验证问题,在线等
- python循环for...in_python循环while和forin实例
- [转载] 面试题:说说Java中接口、类、成员变量、成员方法、构造方法有哪些访问修饰符和他们的作用范围
- Java LinkedList公共对象pollLast()方法(带示例)
- java爬虫自动识别验证码_简单Java爬虫(一)爬取手机号码