Alibaba_Dragonwell OpenJDK VS OracleJDK 详细对比情况
导读:随着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。笨重是笨重,放到服务器以后基本跟本地测试差不多环境。
文本仅供参考,本测试不包含官方测试数据,全来自个人本机电脑测试!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
再谈 RocketMQ broker busy(实战篇)
本文将在 RocketMQ 消息发送system busy、broker busy原因分析与解决方案 的基础上,结合生产上的日志尝试再次理解 broker busy 以及探讨解决方案。 首先,broker busy 相关的日志关键字如下: [REJECTREQUEST]system busy too many requests and system thread pool busy [PC_SYNCHRONIZED]broker busy [PCBUSY_CLEAN_QUEUE]broker busy [TIMEOUT_CLEAN_QUEUE]broker busy 上述前面4个关键字在上篇文章中已详细介绍,本文先对出现上述错误进行一个总结,具体的分析过程请查阅上篇文章。 本文先给出一张流程图,展示上述5种 broker busy 分别会在消息发送的哪个阶段抛出,以便大家能够清晰的了解其发生的原因。 针对前4种 broker busy 出现的问题已经在上篇文章中详细介绍,主要是由于 Broker 在追加消息时持有的锁时间超过了设置的1s,Broker 为了自我保护,会抛出错误,客户端会...
- 下一篇
Spring Security 实战干货:使用 JWT 认证访问接口
1. 前言 欢迎阅读Spring Security 实战干货系列。之前我讲解了如何编写一个自己的 Jwt 生成器以及如何在用户认证通过后返回 Json Web Token 。今天我们来看看如何在请求中使用 Jwt 访问鉴权。DEMO 获取方法在文末。 2. 常用的 Http 认证方式 我们要在 Http 请求中使用 Jwt 我们就必须了解 常见的 Http 认证方式。 2.1 HTTP Basic Authentication HTTP Basic Authentication 又叫基础认证,它简单地使用 Base64 算法对用户名、密码进行加密,并将加密后的信息放在请求头 Header 中,本质上还是明文传输用户名、密码,并不安全,所以最好在 Https 环境下使用。其认证流程如下: 客户端发起 GET 请求 服务端响应返回 401 Unauthorized, www-Authenticate 指定认证算法,realm 指定安全域。然后客户端一般会弹窗提示输入用户名称和密码,输入用户名密码后放入 Header 再次请求,服务端认证成功后以 200 状态码响应客户端。 2.2 HTTP...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果