从OpenJDK开发者到科技创业者,曹贵的升级打怪之路

文摘   2024-11-28 11:07   广东  

技术人员要挖一口足够深的井,这是曹贵在PLCT这两年半感触最深的话。从JAVA产品开发到加入PLCT实验室开发RISC-V OpenJDK,并于今年回到家乡陕西成立公司,推出首个在RISC-V平台上完整支持jdk8u的产品。8年的开发之旅,曹贵挖了一口扎根于 RISC-V 架构、服务于 Java 开发者生态的技术深“井“,并把RISC-V架构带向了祖国广大中西部程序员群体。

图表 1:曹贵的开发之路

铺垫:JAVA开发之旅

在加入PLCT之前,曹贵从事开发JAVA全链路监控产品,JAVA性能分析产品等工作,在此时期,他参与了Apache Skywalking全链路监控开源工具的开发并成为Apache Commiter

在这段Java 全链路监控和性能分析的经历中,曹贵对Java 应用的运行机制,尤其是性能调优的复杂性有了深入的理解。OpenJDK 作为 Java 的核心实现,承载了整个生态的技术演进,因而JAVA开发时期,曹贵就对 OpenJDK 的底层机制产生了浓厚兴趣并开始自学OpenJDK 基础,为日后加入PLCT从事RISC-V OpenJDK开发埋下了热爱与探索的种子。

修炼:RISC-V openJDK开发

2021年9月,曹贵加入了PLCT实验室。这一年,没有JDK开发经验的曹贵在PLCT总监吴伟的支持下加入了JAVA虚拟机小队开始OpenJDK 在 RISC-V 平台上的开发和优化工作。在此期间,曹贵参与了 OpenJDK 11 在 RISC-V RV32G 平台上的开发工作,他所在的小组完成了解释器的移植,并推进实现了C2 JIT 的适配,这一工作为 RISC-V 的 32 位架构提供了基础的Java 运行时支持。在基础支持开发完成后,曹贵与团队伙伴张定力合作,共同完成了 OpenJDK Vector API 在 RISC-V RVV(RISC-V 向量扩展)上的实现,显著提升了 Java 在 RISC-V 平台上对高性能计算和向量处理的支持能力。

在Vector API开发期间,曹贵持续向上游 OpenJDK 社区主线提交了累计60 个 PR,这些PR涵盖功能开发、性能优化以及代码维护,其中59个PR成功合并。同时,曹贵还负责多个 OpenJDK 分支(如 jdk23u、21u-dev、jdk17u-dev 等)的维护与backport 工作,以确保不同版本的 OpenJDK 在 RISC-V 平台上的长期兼容性和稳定性,维护前期建立的OpenJDK RISC-V生态。

图表 2OpenJDK RISC-V Port committer曹贵在openJDK主线的PR列表

移植OpenJDK11 for RV32G的过程并非畅通无阻,报错解决问题时都伴随着大量枯燥的调试,但看着OpenJDK11一步一步在RV32G的虚拟环境中运行起来时,那些在密密麻麻输出中定位bug解决bug的枯燥也仿佛消失了。曹贵感叹道 「唯一的遗憾就是OpenJDK11 For RV32G 没有在实际的硬件环境运行过,如果将来有能运行riscv32-linux的硬件,我一定会尽力完善OpenJDK11 for RV32G这个项目」。

升级:PLCT毕业后当老板

“我一直有一个创业的梦想,希望自己以开发者的身份做一个好的产品,让这个产品去帮助更多的人”。2024年7月,曹贵从PLCT毕业了,这时的他已经基本掌握了为 JAVA 虚拟机实现一个新的指令集架构的流程和实现细节以及对C2 JIT的理解与调试,曹贵回家乡陕西创建了赋能RISC-V生态建设的公司-智子线程。经过调研曹贵发现JDK11 及以上版本都已经支持RISC-V架构,但是并没有JDK8 相关的支持。在实际用户需求及对JDK兴趣的推动下,曹贵选择基于RISC-V架构开发了banshanjdkj-8作为公司首款产品。

图表 3:智子线程官网

目前banshanjdk-8 已经在智子线程官网发布了免费的社区版本,速度可以达到企业版本速度的2/3 左右。对于追求卓越性能的企业用户,智子线程提供了企业版的选择,根据 banshanjdk-8 企业版的测试数据,  java8 程序在 RISC-V 平台上的执行速度将至多提高 126 倍。

回顾:我们总会抵达目的地的

曹贵用8年的开发经历诠释了技术人员挖一口足够深的井的含义,20247月,从PLCT毕业之后的他带着从PLCT积累的宝贵经验和技术能力,踏上了创业的征程,以智子线程为载体,持续赋能 RISC-V 生态。纵然创立公司后角色发生转变,但曹贵并未停下开发的脚步,依然期待自己在JDK这个领域能够学到更多,学的更深。

最后我问曹贵,为什么工作后的每一个阶段都在和JDK打交道,曹贵发送了这一段话
JDK8 源码就在这里,如一座山,不管学不学他都在这里,只要我们稳扎稳打,我们终会将其原理细节搞清楚,搬走这座山。」

关于作者

聂雨婷,中国科学院软件研究所PLCT实验室测试及内容运营,负责Gleam光灵小队和openEuler ROS SIG的运营。



CNRV
RISC-V中国社区
 最新文章