前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【技术浅析】不同厂商Java虚拟机特性解析

【技术浅析】不同厂商Java虚拟机特性解析

作者头像
Luga Lee
发布2022-03-25 13:40:57
6330
发布2022-03-25 13:40:57
举报
文章被收录于专栏:架构驿站

一、 SUN JVM

Sun 公司的JVM,其垃圾回收机制主要采用“分代”方式进行,他将JVM堆栈分为3部分:年轻代、年老代以及持久代。SUN的JVM通过不同的收集器实现不同的收集算法,主要有以下:

1、复制收集器(Copying Collector)

2、标记-清除收集器(Mark and Sweep Collector)

3、标记-整理收集器(Mark and Compact Collector)

Sun 公司的JVM使用频率还是蛮高的,其主要特点无非就是以下几点:

1、 GC机制

2、 自身的缺陷问题

关于GC,SUN公司JVM GC主要由2部分组成,其一是“频繁”GC,其二是“Full”GC。

某些情况下,为了让JVM运行更加强劲,我们需对其复杂配置的参数进行设置,从而满足系统业务要求。

针对如何判断程序运行是否正确,我们可以通过以下途径:

1、 通过工具监控,例如:Jprofiler、Jconsole以及JDK 6以上版本自带的工具JVisualvm等。

2、 通过查看日志,例如:

关于频繁的GC日志信息如下:

10.719: [GC 46136K->17722K(517056K), 0.3663676 secs]

关于FULL GC的日志信息如下: 16.276: [Full GC 516871K->3239K(517056K), 0.0547627 secs]

SUN的JVM慢其中有一个原因就是频繁GC和FULL GC运行频率高,这样就导致

占用系统很多资源。

生成HeapDump文件参数配置如下:

HeapDumpOnOutOfMemoryError 参数(此参数需要Java SE release 5.0 update 14 或以上支持)

设置示例: set JAVA_OPTS=%JAVA_OPTS% -server -Xms512m -Xmx800m -XX:PermSize=64M -XX:MaxPermSize=128m -Djava.awt.headless=true -XX:+HeapDumpOnOutOfMemoryError -XX:+HeapDumpOnCtrlBreak

二、 Oracle JVM

针对Oracle JVM,以前是BEA JVM,后来被Oracle收购,谈起Oracle JVM,其GC机制与SUN公司截然不同,主要有以下特点:

1、 没有FULL GC和频繁GC的概念,每次GC操作间隔时间较长,且回收量也是大小不等。

2、 使用BEA 的JVM启动速度较快

3、 参数设置较为简单

相对其他JVM来说,其性能最强,基于此基础上对线程和网络都做了大量的优化和技巧的工作。

基于Bea JRockit JVM及SUN JVM,目前Oracle JVM支持一下4中垃圾收集器:

1、 分代复制

2、 单空间并发

3、 分代并发

4、 并行收集

生成HeapDump文件配置和SUN JVM一致。

三、 IBM JVM

和其他JVM不同,IBM JVM有自己的特色,与SUN JVM分代回收策略不同的是,其GC主要分3步走:Mark phase(标记),Sweep phase(清扫),Compaction phase(内存紧缩)。

其与SUN JVM基本兼容,主要用于WebSphere应用上,跑在AIX的中间件服务器上,默认为完整的方案解决。目前不支持较高的JDK版本。

IBM JDK生成HeapDump文件参数配置如下: — export IBM_HEAPDUMP=true — export IBM_HEAP_DUMP=true — export IBM_HEAPDUMP_OUTOFMEMORY=true — export IBM_JAVADUMP_OUTOFMEMORY=true — export IBM_JAVACORE_OUTOFMEMORY=true — export IBM_HEAPDUMPDIR=<directory_path>

四、 HP JVM

与SUN JVM基本兼容,有其自己独特地启动参数配置,主要运行在HP UNIX平台上,HP JVM主要分PA和IA平台。

HP JDK生成HeapDump文件需在环境变量加:

export_JAVA_HEAPDUMP=1

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构驿站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、 SUN JVM
  • 二、 Oracle JVM
  • 三、 IBM JVM
  • 四、 HP JVM
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档