华为开源内部OpenJDK定制版:“毕昇 JDK 8”

时间:2022-07-27
本文章向大家介绍华为开源内部OpenJDK定制版:“毕昇 JDK 8”,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

近日华为在 openEuler 社区[1]开源了华为内部定制的的 OpenJDK 发行版,名为“毕昇 JDK 8[2](bishengjdk-8)”。

有点毕生都用 JDK8 的味道

openEuler 社区:通过社区合作,打造创新平台,构建支持多处理器架构、统一和开放的操作系统openEuler,推动软硬件生态繁荣发展。

简介

README 文档中,华为开发者是这样介绍毕昇JDK的:

毕昇JDK是华为内部OpenJDK定制版Huawei JDK的开源版本,是一个高性能、可用于生产环境的OpenJDK发行版。Huawei JDK运行在华为内部500多个产品上,积累了大量使用场景和java开发者反馈的问题和诉求,解决了业务实际运行中遇到的多个问题,并在ARM架构上进行了性能优化,毕昇JDK运行在大数据等场景下可以获得更好的性能。毕昇JDK 8与Java SE标准兼容,目前仅支持Linux/AArch64平台。毕昇JDK同时是OpenJDK的下游,现在和未来也会持续稳定为OpenJDK社区做出贡献。

项目地址以及更多相关信息可以查看:https://gitee.com/openeuler/bishengjdk-8[3]

平台支持

毕昇JDK 当前支持 Linux/AArch64 平台。

支持特性

毕昇JDK已经升级至8u262版本,感谢OpenJDK社区众多开发者的贡献,现在毕昇JDK也已支持JFR,它是默认关闭的,用户可以使用以下命令在java应用启动的时候启用JFR,您还需要一个jmc 7.0以上的版本来读取jfr dump文件。

java -XX:+FlightRecorder

快速序列化 对于一些需要使用Java原生序列化接口而无法使用第三方序列化框架的场景,我们对Java序列化做了一些优化,用户可以使用如下命令打开:

-XX:+UnlockExperimentalVMOptions -XX:+UseFastSerializer -DfastSerializerEscapeMode=true

该参数不能兼容所有序列化场景,对于序列化对象在读写两端不一致或者classmeta信息在运行时发生改变等场景,fastSerializer会无法支持,这时需要保证打开了-DfastSerializerEscapeMode=true选项保证可以回退到原生的序列化模式

安装指南

您可以使用tar压缩包格式或者yum源方式来安装JDK(Java Development Kit)或者JRE(Java Runtime Environment)。

JDK是JRE的超集,包含了JRE的所有内容,并包含javac/jdb等开发者必须的编译器和调试器。JRE提供运行时库、Java虚拟机和其他运行java应用程序所必须的组件。请注意JRE不只包含Java SE规范的内容,也包含一些规范之外java应用程序常用的内容。

用户可以通过以下两种方式来安装:

  • tar压缩包格式(.tar.gz):通过这种方式您可以将JDK安装到系统的任意位置,且不会和系统中其他JDK产生影响。但是这种方式会需要用户进行一些手动设置。详情请见下表。
  • 从yum源安装:通过这种方式您可以将JDK安装到系统的某个固定路径中,并为所有用户提供,这种安装方式需要root权限。当前只有openEuler操作系统支持该操作,详情请见下表。

安装指南地址:https://gitee.com/openeuler/bishengjdk-8/wikis/%E6%AF%95%E6%98%87JDK%208%20%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97?sort_id=2891179[4]

评价

国产开源,精神值得鼓励!不过,究竟好不好用, 实不实用,适不适合,是否解决了大量Java 开发者反馈的问题和诉求,解决了业务实际运行中遇到的多个问题还是有待考察的!

参考资料

[1]

openEuler 社区: https://gitee.com/openeuler

[2]

毕昇 JDK 8: https://gitee.com/openeuler/bishengjdk-8

[3]

https://gitee.com/openeuler/bishengjdk-8: https://gitee.com/openeuler/bishengjdk-8

[4]

https://gitee.com/openeuler/bishengjdk-8/wikis/%E6%AF%95%E6%98%87JDK%208%20%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97?sort_id=2891179: https://gitee.com/openeuler/bishengjdk-8/wikis/%E6%AF%95%E6%98%87JDK%208%20%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97?sort_id=2891179

闲聊

昨晚肝到很晚,把 jsoncat(仿 Spring Boot 但不同于 Spring Boot 的一个轻量级的 HTTP 框架) 的拦截器功能重构完善了一下。感兴趣的小伙伴可以先看一下,后续会带大家看具体实现过程,手把手教你实现(用了责任链模式并参考了 mybatis interceptor 插件机制的实现)。

jsoncat 相关文章:《手写一个类似SpringBoot的轻量级HTTP框架》

支持原创!文章有帮助可以点个「在看」或「分享」,我都会开心很久!

我是Guide哥,Java后端开发,会一点前端知识,喜欢烹饪,自由的少年。一个三观比主角还正的技术人。我们下期再见!