去年,微软宣布收购jClarity以优化Azure上的Java™工作负载。此后我们在微软的开发者部门成立了Java工程小组以帮助实现任何开发人员,任何应用程序和任何平台的愿景。
今天,我们的团队很高兴与大家分享它已经完成了在基于Arm®(AArch64)的设备上移植Windows 10的OpenJDK™的第一阶段的工作,现在我们正在推进对上游OpenJDK项目的更改。由Monica Beckwith率领并得到Ludovic Henry及团队和合作伙伴工程师支持的移植项目,已与Red Hat一起提交到OpenJDK项目。现在可通过我们的GitHub项目获得Early Access二进制文件,欢迎开发人员下载并尝试使用它。
微软在市场上表现出极大的热情,并且在笔记本电脑上以及最近在服务器上越来越多地采用ARM64架构。凭借更高的能源效率,使用ARM64可以大大降低数据中心的成本并延长个人设备的电池寿命。Windows操作系统是许多工作负载和用户首选项,Java 工程小组希望通过这次移植项目来支持这些用户。
尽管仍未100%完成,基于OpenJDK尖端分支(16+)的移植已可以运行大多数工作负载,包括SPEC SERT(在我们对新平台组合的贡献被接受之后)以及所有SPEC Java套件。开发人员可以开始在Windows 10 ARM64兼容笔记本电脑(例如Surface Pro X)上开发Java,并在最近发布的Visual Studio Code for Windows ARM64中使用核心Java扩展以及传统工具(例如Apache Maven,Gradle等)。细节请参考VS Code for Java May Update。有关移植的当前限制和路线图等更多详细信息,可以在Monica发送给OpenJDK项目的消息以及GitHub项目的README中找到。
尽管针对Azure优化Java仍然是我们的核心目标之一,但至关重要的是,我们必须参与其他计划,以使Java平台在云之外的其他领域更加出色。从下面的幻灯片可以看出,Microsoft本身就对Java进行了大量投资,这是由Martijn Verburg最近在今年的Microsoft Build会议“Modern Java for Cloud Developers”中提出的。
微软对Java的使用是我们团队致力于参与Java生态系统并与OpenJDK项目进行协作的原因,它超出了特定于云的需求。我们从细小但重要的投入开始,熟悉OpenJDK流程,贡献了一些重要的补丁,并激发了与其他OpenJDK工程师的有趣讨论,例如堆栈分配和由Charlie Gracie在最新的JFokus会议提出的Stack Allocation and the Current State of JVM Escape Analysis。
Microsoft对OpenJDK的最新贡献
- 8231863: Crash if classpath is read from @argument file and the main gets option argument
- 8234076: JVM crashes on Windows 10 using –module=NAME
- 8236179: C1 register allocation error with T_ADDRESS
- 8236981: Remove ShenandoahTraversalUpdateRefsClosure
- 8220503: Move ShenandoahTerminatorTerminator::should_exit_termination out of header
- 8230853: Shenandoah: replace leftover assert(is_in(…)) with rich asserts
- 8231668: Remove ForceDynamicNumberOfGCThreads
- 8241067: Shenandoah: improve ShenandoahNMethod::has_cset_oops arguments
- 8241122: Remove unimplemented InlineTree constructor definition from parse.hpp
- 8240972: macOS codesign fail on macOS 10.13.5 or older
- 8241142: Shenandoah: should not use parallel reference processing with single GC thread
无论Gradle,Maven还是使用Visual Studio Code的Java项目,请尝试基于ARM的OpenJDK for Windows 10。我们很高兴继续与OpenJDK和Java社区合作。
谢谢!
Java和OpenJDK是Oracle和/或其分支机构的商标或注册商标。
Arm是Arm Limited(或其子公司)在美国和/或其他地方的注册商标。
0 comments