导读:随着oracle各种疯狂版本的发布,Oracle JDK成为收费软件,很多公司转向寻找Oracle JDK的替代品。有很多人都会怀疑,Oracle JDK和其他JDK之间有没有很大的性能差异。加上笔者的1H2G1M的服务器,然后为了自己的技术能力的提升。本文作者通过不是很专业的方面测试,给出这个自认为可行的选择方案。
 
各大厂商频频推出自己的开源JDK是人性的扭曲还是道德的沦丧? 代码的有无国界是程序员的无奈还是大厂的爆发?
 
官放牛逼还是第三方牛逼? 官方为何变成版本发布狂?
 
服务器为何莫名宕机究竟是何人所为?内存一直占用率居高不下,究竟人为还是鬼祟?
 
官方与第三方的背后有隐藏着什么?
 
请关注今晚【开源oschina】的此篇文章,
 
 
 
 
 
测试环境:window10
 
测试容器:Tomcat8.5.47
 
测试JDK:
 
1、Alibaba_Dragonwell_8.1.1 下载页面链接 https://github.com/alibaba/dragonwell8/releases 
 
2、官方jdk1.8.0_31 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
 
测试项目:https://gitee.com/bdj/SpringBoot_v2
 
 
 

 

 
 
 
第一步空跑Tomcat测试
 
    项目只留一个Tomcat自带ROOT项目
 
对比图:
 
阿里JDK:
 
 
 

 

 
官方JDK:
 

 

 
结果对比表:
 
空跑tomcat速度
 
 
  
   
   | jdk版本 | 速度 | 结果 | 
 
   
   | 阿里 | 289ms | 赢 | 
 
   
   | 官方 | 580ms |  | 
 
  
 
内存占用结果:
 
 
  
   
   | jdk版本 | 内存 | 结果 | 
 
   
   | 阿里 | 78.3M |  | 
 
   
   | 官方 | 73M | 赢 | 
 
  
 
 
 
 
 
第二步跑springboot项目
 
    跑自己的项目
 
阿里JDK:
 

 
内存占比:
 

 
 
 
 
 
 
 
官方JDK:
 

 
 
 
内存占比:
 

 
速度结果:
 
 
  
   
   | jdk版本 | 速度 | 结果 | 
 
   
   | 阿里 | 18216ms | 赢 | 
 
   
   | 官方 | 20234ms |  | 
 
  
 
内存占用结果: 
 
 
  
   
   | jdk版本 | 内存 | 结果 | 
 
   
   | 阿里 | 253.4M | 赢 | 
 
   
   | 官方 | 882.7M |  | 
 
  
 
 
 
第三步apache-jmeter-5.2测试
 
阿里JDK:
 
汇总报告:
 

 
聚合报告:
 

 
 
 
汇总图:
 

 
 
 
图像结果:
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
官方JDK:
 
汇总报告:
 

 
聚合报告:
 

 
 
 
汇总图:
 

 
 
 
图像结果:
 

 
 
 
 
 
以上是总结:
 
以上就是阿里jdk与官方jdk的JMeter 对比图
 
从吞吐量来说好像官方jdk更棋高一手!但是我们跑项目不单单是从吞吐量开始!
 
但是阿里jdk给我的感觉就是省内存,能够大幅度提高稳定性、效率及性能。
 
 
 
后续:
 
1.授权协议的不同:OpenJDK采用GPL V2协议放出,而SUN JDK则采用JRL放出。两者协议虽然都是开放源代码的,但是在使用上的不同在于GPL V2允许在商业上使用,而JRL只允许个人研究使用。
 
2.OpenJDK不包含Deployment(部署)功能:部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,这些功能在OpenJDK中是找不到的。
 
3.OpenJDK源代码不完整:这个很容易想到,在采用GPL协议的OpenJDK中,SUN JDK的一部分源代码因为产权的问题无法开放给OpenJDK使用,其中最主要的部份就是JMX中的可选元件SNMP部份的代码。
 
4.部分源代码用开源代码替换:由于产权的问题,很多产权不是SUN的源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用Free Type代替。
 
 
 参考:https://zhidao.baidu.com/question/435377236723677684.html
 
 
其他参考答案:
 
 
 答:非常接近 - 我们的Oracle JDK版本构建过程基于OpenJDK 7构建,只添 加了几个部分,例如部署代码,其中包括Oracle的Java插件和Java WebStart 的实现,以及一些封闭的源代码派对组件,如图形光栅化器,一些开源的第三 方组件,如Rhino,以及一些零碎的东西,如附加文档或第三方字体。展望未 来,我们的目的是开源Oracle JDK的所有部分,除了我们考虑商业功能的部 分。
 ————————————————
 版权声明:本文为CSDN博主「程序猫A建仔」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
 原文链接:https://blog.csdn.net/weixin_44504146/article/details/93410569
 
 
 
 
 
 
如果但从配置低的服务器从上面测试来看,我选择阿里JDK,如果从高配服务器来说,我还是选择官方jdk。笨重是笨重,放到服务器以后基本跟本地测试差不多环境。
 
文本仅供参考,本测试不包含官方测试数据,全来自个人本机电脑测试!