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种类相关推荐

  1. JVM - 常见的JVM种类

    HotSpot VM HotSpot VM是绝对的主流.大家用它的时候很可能就没想过还有别的选择, 或者是为了迁就依赖了Oracle/Sun JDK某些具体实现的烂代码而选择用HotSpot VM省点 ...

  2. java hprof 分析_[转]Sun JDK自带JVM内存使用分析工具HProf

    Sun JDK自带JVM内存使用分析工具HProf 2008-10-14 11:27 Sun JDK自带JVM内存使用分析工具HProf       使用Sun JDK自带JVM内存使用分析工具HPr ...

  3. JVM的内存结构,Eden和Survivor比例;JVM中一次完整的GC流程,对象如何晋升到老年代,说说你知道的几种主要的JVM参数;CMS 常见参数解析;.你知道哪几种垃圾收集器,各自的优缺点

    47.JVM的内存结构,Eden和Survivor比例 49.JVM中一次完整的GC流程是怎样的,对象如何晋升到老年代,说说你知道的几种主要的JVM参数 50.-XX:+CMSScavengeBefo ...

  4. 关于JVM调优的工具及JVM 常见调优参数

    六个命令行排查工具 我们一般使用 JDK 自带的 6 个命令行工具来排查JVM.它们分别是:jps.jstat.jinfo.jmap.jhat 和 jstack,它们都位于 JDK 的 bin 目录下 ...

  5. JVM实用参数(一)JVM类型以及编译器模式

    原文地址:https://blog.codecentric.de/en/2012/07/useful-jvm-flags-part-1-jvm-types-and-compiler-modes/ 译者 ...

  6. 【Java架构师】JVM性能优化(一)JVM技术入门下

    JVM性能和"一次编译,到处运行"的挑战 我有新的消息告诉那些固执的认为Java平台本质上是缓慢的人.当Java刚刚做为企业级应用的时候,JVM被诟病的Java性能问题已经是十几年 ...

  7. JVM虚拟机(最详细的jvm总结)

    我跟你讲一下我对于java的理解吧 java最大的特点就是平台无关性,一次编译,到处运行. Java源码首先被编译成字节码,再由不同平台的JVM进行解析,JAVA语言在不同的平台上运行时不需要进行重新 ...

  8. 白话Elasticsearch67-不随意调节jvm和thread pool的原因jvm和服务器内存分配的最佳实践

    文章目录 概述 不随意调节jvm和thread pool的原因 jvm gc threadpool jvm和服务器内存分配的最佳实践 jvm heap分配 将机器上少于一半的内存分配给es 为什么不要 ...

  9. JVM调优笔记:认识JVM内存模型(jdk1.8)

    文章目录 1.什么是JVM 2.jdk.jre.jvm关系 3.JVM执行过程 4.JVM执行程序的过程 5.JVM运行时数据区 虚拟机栈(线程私有) 本地方法栈(线程私有) 程序计数器(线程私有) ...

最新文章

  1. 计算机控制系统中的模拟输入通道需应用,远程西安交通大学17年3月课程考试《计算机控制技术》作业考核试题...
  2. linux curl没有内容,curl在tcpdump中没有显示输出
  3. Ember.js如何与后端服务交互?adapter、store、ember data关系揭秘
  4. 关于windows注册表重定向和虚拟化分析
  5. Spark SQL读数据库时不支持某些数据类型的问题(Timestamp with local Timezone)
  6. limux php启动_linux下nginx与php设置开机启动代码
  7. 应用开发专家一席谈:开发低代码,上手低门槛,AppCube使能Citizen Developer,人人都是开发者
  8. 软件界面是怎么做出来的_电脑时间管理软件,每天要做的事情会有对话框跳出来提醒的便签软件...
  9. 快速掌握 10 个 HTML5 必备技巧
  10. 远程下载马bypass waf
  11. 大连理工大学在CVPR18大规模精细粒度物种识别竞赛中获得冠军
  12. KFD algorithm
  13. python快速整理excel_python批量处理excel文件数据
  14. linux终端怎么设置monaco,[Linux]Vim设置Monaco字体Vim颜色模板
  15. 极域课堂管理系统软件V6.0 2016 豪华版
  16. [C++]学生学籍管理系统
  17. jQuery常用功能大全
  18. matlab绘制椭球ellipsoid函数
  19. c语言美元转换人民币的程序,【其它】编程题: 1.编写一个人民币和美元的双向汇率转换程序,实现美元和人民币转换,汇率:1美元=6.92人民币...
  20. 王选计算机研究院,北京大学

热门文章

  1. 51CTO寄来的奖品
  2. java hashmap 的api_JAVA基础--JAVA API集合框架(ArrayList、HashSet、HashMap使用)
  3. python中括号的作用_Python3--中括号[]与冒号:在列表中的作用
  4. bat 存储过程返回值_使用Mybatis过程中遇到的坑
  5. markdown 语法_markdown特殊语法之上下标
  6. php数组验证用户名密码,求个php数组验证问题,在线等
  7. python循环for...in_python循环while和forin实例
  8. [转载] 面试题:说说Java中接口、类、成员变量、成员方法、构造方法有哪些访问修饰符和他们的作用范围
  9. Java LinkedList公共对象pollLast()方法(带示例)
  10. java爬虫自动识别验证码_简单Java爬虫(一)爬取手机号码