您可能已经知道,Apple在macOS Mojave中弃用了OpenGL渲染库,并提供了Metal框架作为替代。 Metal更好地反映了过去20年中CPU / GPU性能的变化。因此,通过适当的实施,与旧版OpenGL相比,基于Metal的应用程序性能更好,能耗更低。
这对我们的产品意味着什么?我们基于Java的IDE使用Swing UI工具箱,该工具箱使用Java 2D API进行渲染。在内部,Java 2D使用平台API来呈现渲染结果。从JDK7开始,使用最初为Linux平台设计的OpenGL管道重新实现了macOS Java的渲染子系统。因此,目前macOS上的Java 2D严重依赖OpenGL。由于许多原因,这并不是一件好事,其中之一是苹果公司对此弃用的技术缺乏支持。而且,在某些时候它可以从更高版本的OS中完全删除。
考虑到所有这些因素,我们已经开始与Oracle桌面团队进行一项联合计划,以实施JEP 382 – Lanai项目。我们的目标是在Metal框架之上实现Java 2D API。我们已经取得了一些进展,在许多情况下,性能都可以与OpenGL管道媲美。仍然存在一些质量和稳定性问题,但是我们正在正确的道路上,以即将发布的OpenJDK版本之一提供新的管道。如果您想对其进行测试,请尝试使用我们最新的EA版本。 (请注意,预览版本可能不可靠,可能无法按预期运行,并且可能包含错误。使用EA产品的风险自负)。