diff --git "a/Test_Result/openEuler_24.03_LTS_SP3/openEuler 24.03 LTS SP3\347\211\210\346\234\254\346\257\225\346\230\207JDK21\346\226\260\345\242\236\347\211\271\346\200\247\346\265\213\350\257\225\346\212\245\345\221\212.md" "b/Test_Result/openEuler_24.03_LTS_SP3/openEuler 24.03 LTS SP3\347\211\210\346\234\254\346\257\225\346\230\207JDK21\346\226\260\345\242\236\347\211\271\346\200\247\346\265\213\350\257\225\346\212\245\345\221\212.md" new file mode 100644 index 0000000000000000000000000000000000000000..3c6549d78f6c0869a23604b315f06bda41de28cf --- /dev/null +++ "b/Test_Result/openEuler_24.03_LTS_SP3/openEuler 24.03 LTS SP3\347\211\210\346\234\254\346\257\225\346\230\207JDK21\346\226\260\345\242\236\347\211\271\346\200\247\346\265\213\350\257\225\346\212\245\345\221\212.md" @@ -0,0 +1,173 @@ +![avatar](../../images/openEuler.png) + + +版权所有 © 2025 openEuler社区 + 您对“本文档”的复制、使用、修改及分发受知识共享(Creative Commons)署名—相同方式共享4.0国际公共许可协议(以下简称“CC BY-SA 4.0”)的约束。为了方便用户理解,您可以通过访问https://creativecommons.org/licenses/by-sa/4.0/ 了解CC BY-SA 4.0的概要 (但不是替代)。CC BY-SA 4.0的完整协议内容您可以访问如下网址获取:https://creativecommons.org/licenses/by-sa/4.0/legalcode。 + +修订记录 + +| 日期 | 修订版本 | 修改描述 | 作者 | +| ---- | ----------- | -------- | ---- | +| 2025/12/11 | V1.0 | 毕昇JDK21新增特性测试报告 | 朱祥照| + + +关键词: + +摘要: + + +缩略语清单: + +| 缩略语 | 英文全名 | 中文解释 | +| ------ | -------- | -------- | +| | | | +| | | | + +# 1 特性概述 +1、毕昇JDK21支持JIT warmup, 提升Java启动性能5%(互联网): +在应用刚启动时,大量用户请求涌入会导致JVM的即时编译(JIT)线程与处理用户请求的业务线程激烈争夺CPU资源,使得热点方法无法被及时编译优化,导致应用长时间处于低效的"解释执行"状态,表现为响应时间(RT)增加和CPU使用率飙升。该方案通过在用户请求到来前预先启用类似JProfilecache的特性,将热点方法静默编译为高性能的本地代码(Native Code),从而让服务快速达到峰值性能,避免运行时编译竞争,最终提升应用性能。 + +2、毕昇JDK21支持元数据压缩优化降低堆数据内存使用: +Java对象的存储会有额外的开销,即对象头,它用于存储与该对象相关的元数据信息。伴随存活对象的增多,以及大量小对象的存在,对象头占用空间问题也会愈发严重。压缩对象头特性由此而来,旨在研究如何将Hotspot JVM中的Java对象头从128/96 +bits降低到64 bits,从而减少Java堆内存(Heap Memory)占用,并且通常还能提升应用程序的工作负载性能。 + +3、毕昇JDK21毕昇JDK融合版本 G1、PS支持堆内存扩缩容: +允许用户在应用运行时动态扩展Java堆内存的上限,而无需重启JVM。核心是通过引入动态最大堆概念,其值可随时修改,运行时通过jcmd命令修改该值来动态控制实际堆内存上限。 + +# 2 特性测试信息 + +本节描述被测对象的版本信息和测试的时间及测试轮次,包括依赖的硬件。 + +| 版本名称 | 测试起始时间 | 测试结束时间 | +| -------- | ------------ | ------------ | +| openEuler 24.03 LTS SP3 JDK | 2025/12/05 | 2025/12/10 | + +描述特性测试的硬件环境信息 + +| 硬件型号 | 硬件配置信息 | 备注 | +| -------- | ------------ | ---- | +| 鲲鹏920 | 320核/512G内存/1T存储 | | + +# 3 测试结论概述 + +## 3.1 测试整体结论 + +毕昇JDK21支持JIT warmup, 提升Java启动性能5%(互联网)特性、毕昇JDK21毕昇JDK融合版本 G1、PS支持堆内存扩缩容特性、毕昇JDK21支持元数据压缩优化降低堆数据内存使用特性,共计执行97334个用例,主要覆盖了功能测试,通过经过fuzz和7*24的长稳测试,发现问题已解决,回归通过,无遗留风险,整体质量良好; + +| 测试活动 | 测试子项 | 活动评价 | +| ------- | -------- | ------- | +| 功能测试 | 毕昇JDK21支持KAE zip、KAE provider、KAE支持OpenSSL 3.0 | 无遗留风险,整体质量良好 | +| 功能测试 | 毕昇JDK21支持JIT warmup, 提升Java启动性能5%(互联网)特性 | 无遗留风险,整体质量良好 | +| 功能测试 | 毕昇JDK21毕昇JDK融合版本 G1、PS支持堆内存扩缩容特性 | 无遗留风险,整体质量良好 | +| 资料测试 | 特性选项测试 | 无遗留风险,整体质量良好 | +| DFX专项测试 | 性能测试 | 性能达标 | +| DFX专项测试 | 安全测试 | 无遗留风险,整体质量良好 | + +## 3.2 约束说明 +毕昇JDK21支持JIT warmup, 提升Java启动性能5%(互联网): +NA + +毕昇JDK21支持元数据压缩优化降低堆数据内存使用特性: + 1.仅支持G1GC、PSGC;Metaspace小于4G,否则超出可压缩范围(实际情况Metaspace很难超过500MB,几乎不可能达到) + + +毕昇JDK21毕昇JDK融合版本 G1、PS支持堆内存扩缩容特性 + 1. 内存资源足以支撑扩容 + 2. 目前仅支持G1/PS GC(-XX:+UseG1GC/-XX:+UseParallelGC) + 3. 使用本特性时必须开启UseAdaptiveSizePolicy + + +## 3.3 遗留问题分析 + +### 3.3.1 遗留问题影响以及规避措施 +NA + +### 3.3.2 问题统计 +NA + +# 4 详细测试结论 + +## 4.1 功能测试 +*开源软件:主要关注开源软件升级后的变动点,继承特性由开源软件自带用例保证(需额外关注软件包提供可执行命令、库、服务功能)* +*社区孵化软件:主要参考以下列表* + +### 4.1.1 继承特性测试结论 +不涉及 + +### 4.1.2 新增特性测试结论 + +| 序号 | 组件/特性名称 | 特性质量评估 | 备注 | +| --- | ----------- | :--------: | --- | +|3|毕昇JDK21支持JIT warmup, 提升Java启动性能5%(互联网) | | | +|3|毕昇JDK21支持元数据压缩优化降低堆数据内存使用 | | | +|3|毕昇JDK21/毕昇JDK融合版本 G1、PS支持堆内存扩缩容(京东) | | | + + +: 表示特性不稳定,风险高 +: 表示特性基本可用,遗留少量问题 +: 表示特性质量良好 + +## 4.2 兼容性测试结论 + +通过jtreg测试,对比上一个版本没有API改变,通过自研用例验证原有的JDK选项没有删除,与前一个版本相比JDK选项和api接口没有发生变化,符合升级兼容性。 + +## 4.3 DFX专项测试结论 + +### 4.3.1 性能测试结论 +| 指标大项 | 指标小项 | 指标值 | 测试结论 | +| ------- | ------- | ------ | ------- | +| 毕昇JDK21支持JIT warmup, 提升Java启动性能5%(互联网) | spring | Spring开启JProfileCache特性相较于不开JProfileCache特性到达峰值的时间提升5% | 使能特性对比不使能特性提升8% | +| 毕昇JDK21支持元数据压缩优化降低堆数据内存使用 | SPECjbb2015 | 毕昇JDK21支持元数据压缩优化降低堆数据内存使用,SPECjbb性能↑5%,挑战10% | 使能特性对比不使能特性提升9.8% | + + +### 4.3.2 可靠性/韧性测试结论 + +不涉及 + +### 4.3.3 安全测试结论 + +| 测试类型 | 测试内容 | 测试结论 | +| ------- | ------- | -------- | +|二进制安全扫描|开源漏洞扫描|测试通过,无安全问题| + +## 4.4 资料测试结论 +*建议附加资料PR链接* +| 测试类型 | 测试内容 | 测试结论 | +| ------- | ------- | -------- | +|资料测试 |特性选项使用流程|通过 | + +## 4.5 其他测试结论 + +| 测试类型 | 测试内容 | 测试结论 | +| ------- | ------- | -------- | +| NA | NA | NA | + +# 5 测试执行 + +## 5.1 测试执行统计数据 + +*本节内容根据测试用例及实际执行情况进行特性整体测试的统计,可根据第二章的测试轮次分开进行统计说明。* + +| 版本名称 | 测试用例数 | 用例执行结果 | 发现问题单数 | +| -------- | ---------- | ------------ | ------------ | +| openEuler 24.03 LTS SP3 JDK | 98277 | 98277 | 0 | + + +*数据项说明:* + +*测试用例数--到本测试活动结束时,所有可用测试用例数;* + +*发现问题单数--本测试活动总共发现的问题单数。* + +## 5.2 后续测试建议 + +NA + +# 6 附件 +NA + + + + + + \ No newline at end of file