JDK 版本和厂商怎么选?在 ARM 下呢?用实际压测数据告诉你,文末有惊喜

前几天分享了几款国产 JDK ,最近也做了一些压测,今天把我所做的压测数据分享给大家,作为测试门外汉,不保证测试流程一定严格标准,测试用例及测试结果仅供参考,如果有不严谨的地方,希望大家多多指教。

测试需求如下:

  • 对比 x86 vs arm 架构 JDK 性能表现

  • 对比 不同版本 JDK 性能表现

  • 对比 不同厂商 JDK 性能表现

测试准备

准备需要用到的机器及 JDK,机器可以直接从云平台按需使用开出来,JDK 也提前下载好,推荐 2 篇之前写的文章:

机器准备

  • x86 4c16g, 2 台,一台 待测机器,一台 jmeter 压测机

  • arm 4c16g, 2 台,一台 待测机器,一台 jmeter 压测机

  • arm 8c16g, 1台,既充当待测机器,又充当 jmeter 压测机(不同时)

JDK 准备

  • oracle jdk,8, 11, 17

  • bisheng jdk,8, 11, 17

  • kona jdk, 8, 11, 17

  • dragonwell jdk, 8, 11, 17

项目准备

  • golang gin hello 项目,用于辅助对比 arm vs x86 机器性能差异

  • springboot hello 项目

测试用例主要根据测试需求进行设计,本文使用测试技能点在之前的文章中已做过记录,推荐您可以查阅:

现在开整

测试不同版本 JDK 性能差异

这个测试比较简单,就是在 单一机器架构下,更换不同的 JDK 进行分别压测,对比其性能差异,由于不同品牌各版本的结果基本一致,我这里只贴出一组数据用来辅助证明结论:

先抛出结论(性能从好到差排序):JDK 17 > JDK 11 > JDK 8

测试不同厂商 JDK 性能差异

这个主要比较在 arm 机器上不同厂商的差异,在 x86 上各厂商的相差不大,主要对比在 arm 架构的适配。

先抛出结论(可能是用的 aliyun ec2 的原因):dragonwell > bisheng > kona > oracle

测试不同机器架构下 JDK 性能差异

上 2 个测试结果其实已经可以看出端倪了,同样是 4c16g 的机器,在 arm 架构下性能下降明显,在测试过程中,更是发现 oracle jdk 8 压根连压测都跑不下去,会卡死不动

先抛结论:arm 同配置机器性能下降明显,cpu 利用率没有 x86 的利用率高,切换至 arm 8c16g 机器才与 x86 4c16g 相当

辅助验证不同架构对性能的影响

为了探究是不是 arm 机器存在偷工减料的情况,使用 golang gin 写一个 hello 项目进行测试,看看是不是也会下降。

先抛结论:arm 环境下 golang 项目性能基本与 x86 机器保持一致,不是 arm 机器偷工减料的问题

总结

经过几天的测试,当然不止上面贴的那么多内容,上面是最终沉淀下来的比较具有普遍性和代表性的样例,希望对大家做决策有所参考,这里再回顾一下结论。

  • go 项目对机器架构差异较小,使用 go 具有较好的跨平台性

  • jdk 版本更高,默认情况下性能会有所提高,可以选择使用较新的版本提升一下性能

  • arm 架构下 java 项目性能损耗比较大,推荐采用国产适配的 jdk 版本,bisheng,kona,dragonwell 都是不错的选择

  • arm java 项目的 cpu 利用率只有 50% 左右,这可能是其性能低下的原因,通过升级 cpu 核数可以提升其 tps,但也不是无限的

好了,以上就是今天的分享,希望对你有所帮助,我建了一个程序猿副业交流群,欢迎冠珠下方二维码获取 1000 套高质量技术专栏和训练营课程,也可以获取我的联系方式并找到我,拉你进副业群一起交流。

小福利

文末小福利,作为资深囤货达人,购置或转存了上千 T 的各种资源,反正我也学不完,如有需要,可以公#号:新质程序猿,找到我,免费送您,能帮助到大家也算是有所福报吧!

首先,确保你的计算机满足MyEclipseJDK的系统要求。对于Windows系统,无论是32位还是64位,安装前需要准备JDK环境。接下来,根据你的Windows版本择相应的JDK安装包进行安装。以下是详细的步骤: 参考资源链接:[MyEclipse 10.7.1及JDK 32/64位下载链接](https://wenku.csdn.net/doc/30wsrmv8vx?spm=1055.2569.3001.10343) 1. 访问Oracle官网或通过《MyEclipse 10.7.1及JDK 32/64位下载链接》提供的链接下载适合你的Windows系统版本JDK安装包。 2. 运行下载的JDK安装程序并遵循安装向导完成安装。安装完成后,记下JDK的安装路径,通常在C:\\Program Files\\Java\\jdk<version>\\。 3. 接下来,下载MyEclipse 10.7.1安装程序。同样,你可以通过上述提供的资源获取下载链接。 4. 运行MyEclipse安装程序,按照提示完成安装。在安装过程中,会出现设置JDK版本的步骤。在这里,你需要择之前安装好的JDK版本路径。 5. 完成JDK关联设置后,继续安装流程直到完成。安装完成后,打开MyEclipse,它应该能够识别到你关联的JDK环境,并准备就绪进行Java或Web开发。 如果你在安装过程中遇到任何问题,例如JDK路径设置错误或MyEclipse启动失败,可以查阅MyEclipseJDK的官方文档,或参考《MyEclipse 10.7.1及JDK 32/64位下载链接》中的相关指南,那里提供了更多故障排除的信息技巧。安装配置完成后,你可以开始使用MyEclipse的丰富功能进行开发工作。 参考资源链接:[MyEclipse 10.7.1及JDK 32/64位下载链接](https://wenku.csdn.net/doc/30wsrmv8vx?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值