一、简介:

        321日北京阿里云峰会,阿里巴巴正式宣布对外开源OpenJDK长期支持版本Alibaba Dragonwell。作为Java全球管理组织Java Community ProcessJCP)的最高执行委员会的唯一中国代表,以及Oracle之外的Java生态中为数不多的OpenJDK定制者,Alibaba Dragonwell的开源是阿里巴巴向全球Java开发者的重磅献礼。

    阿里巴巴有着最丰富的Java应用场景,覆盖电商、金融、物流等众多领域,是世界上最大的Java用户之一。作为OpenJDK的下游,Alibaba Dragonwell是阿里巴巴内部OpenJDK定制版AJDK的开源版本,AJDK为在线电商、金融、物流做了结合业务场景的优化,运行在超大规模的、100000+服务器的阿里巴巴数据中心。Alibaba DragonwellJava SE标准兼容,目前仅支持Linux/x86_64平台。Alibaba DragonwellOpenJDK的下游(friendly fork),使用了和OpenJDK一样的licensing。阿里会更紧密地和OpenJDK等开源社区协作,贡献更多的patches,促进Java技术的持续发展。

image.png


二、特性:

1、垃圾回收:使用CMS (-XX:+UseConcMarkSweep) 作为默认GC策略。

2、JFRJava Flight Recorder):

(1)JDK11backport到了Dragonwell-8版本中。

(2)添加了EnbleJFR命令行选项,默认关闭,用于彻底隔离JFR相关逻辑,只有添加-XX:+EnableJFRJVM命令行才可以使用JFR特性。

3、Serviceability支持:

(1)jmapdump子命令支持“mini”选项,可以在做heapdump时忽略掉原始类型数组的内容,详情请参考jmap工具的帮助信息。

(2)增加参数PrintYoungGenHistoAfterParNewGC用于打印一次ParNew GC之后young区对象的histogram。该参数可以用jinfo动态打开。

(3)增加参数PrintGCRootsTraceTime用于打印一次ParNew GC的具体耗时,主要用于排查长的ygc问题。该参数可以用jinfo动态打开关闭。

(4)增加了参数ArrayAllocationWarningSize,默认值为512M。当分配的对象大小超过该值的时候,标准输出里会显示分配的堆栈。该参数可以通过jinfo动态修改。

4、JWarmUp

(1)增加参数CompilationWarmUpRecording启用JWarmUp的记录模式,在指定的时间后,JVM会生成JWarmUp profile,包含JVM中的已加载类及热点方法。

(2)增加参数CompilationWarmUp启用JWarmUp的预热编译模式,根据指定的JWarmUp profile加载之前记录的热点方法,通过API可以通知JVM预热编译热点方法。

(3)JDK中提供com.alibaba.jwarmup.JWarmUp类,应用可以使用该JAVA API控制JWarmUp,例如通知JVM开始WarmUp编译,检查编译情况,通知JVM退优化预热编译的方法。

 

三、安装Alibaba Dragonwell

1、下载软件包:

下载地址:https://github.com/alibaba/dragonwell8/releases

下载版本:Alibaba_Dragonwell8_Linux_x64_8.0-preview.tar.gz

2、解压软件包:# tar -xf Alibaba_Dragonwell8_Linux_x64_8.0-preview.tar.gz -C /usr/local

image.png

备注:解压后生成的目录名为j2sdk-image

3、配置环境变量:

# vim /etc/profile.d/jdk.sh

export JAVA_HOME=/usr/local/j2sdk-image

export PATH=$JAVA_HOME/bin:$PATH

# . /etc/profile.d/jdk.sh

4、查看JAVA版本:# java -version

image.png