Java在Arm上更环保

更新时间: 2024-11-01 09:52:51来源: 粤嵌教育浏览量:35

硬件和软件正在并行发展,将最好的现代软件开发与最新的Arm硬件相结合可以产生令人印象深刻的性能、成本和效率结果。

 

为什么是Arm

Arm是精简指令集计算机(RISC)架构家族的成员,这是一种基于小型、高度优化的指令集的微处理器架构。该家族的其他已知代表是RISC-VSPARCMIPS。最初,RISC家族的目标是嵌入式和相关市场,但很快就发展到了新的潜力,Arm成为迄今为止最受欢迎的产品。

如今,Arm在云计算领域与x86(基于CISC方法)竞争,需要知道CISCRISC之间的两个关键区别。

首先是指令的执行方式。这两种方法都试图提高CPU性能,但方式不同:

RISC以牺牲每个程序的指令数量为代价减少了每条指令的周期数。

CISC使每个程序的指令数最小化,但这是以每条指令的周期数增加为代价的。

 

第二个区别是许可方式。x86Arm都是开源架构,可以通过许可证进行生产。然而,x86在历史上是由英特尔开发的:“x86”这个名字来源于该公司发布的早期处理器8086。如今,只有三家公司持有使用这种架构类型构建硬件的许可证,而英特尔仍然是该市场的最大股东。

Arm许可证更容易获得,因此Arm制造业极具竞争力。在某些方面,Arm许可方法使这种硬件得以蓬勃发展并迅速发展。Arm最初被设想为嵌入式和相关应用的解决方案,经过多次扩展,现在可以在M3M4芯片、手机、汽车等台式机处理器、几乎所有其他地方找到它。

 

Arm的现代Java增强功能

Java社区不久前就认识到了Arm的潜力,并成功完成了多项优化Java以用于Arm的计划。

第一个AArch64项目作为OpenJDK的一部分实现,为JDK 9提供了Linux/AArch64端口。这对今天Java的使用方式产生了重大影响。

以下Java 11JEP 315中启动的端口带来了许多优化:改进Aarch64内部函数。此JEP的改进是特定于CPU的,有助于改进所有操作系统。在Java 16Java 17的后续OpenJDK版本中,建立了两个重要的端口:Windows/AArch64JEP 388)和macOS/AArch64JEP 391),为提供了几乎所有流行操作系统上的完整Java选项。

如今,作为一名开发人员,你可以在成熟和现代的Java版本中找到Java on Arm。除了Arm上的Java之外,还可以在Arm上选择小型基础Linux容器映像,以进一步从这种架构中受益。

Java on Arm对企业开发和DevOps特别感兴趣,希望实现更高的效率和更低的成本。使用x86仿真或Arm原生JDK迁移到Aarch64很容易。

 

同云中的Arm硬件回顾

由于软件端设置为在Arm上工作,并且大多数Linux发行版和其他关键项目(用于web)已经可用并得到支持,因此可以自由选择Arm硬件。让我们仔细看看基于Arm的服务器可以为我们做些什么,这些服务器现在正在云服务领域取得进展。

基于Arm的服务器是使用基于Arm架构的处理器的服务器机器,在数据中心、云计算和各种企业应用程序中越来越受欢迎。

基于Arm的服务器越来越多地被采用是由几个因素驱动的,包括它们的能效、成本效益和可扩展性。此外,操作系统供应商、开源项目和云服务提供商的支持越来越多,这有助于使Arm服务器解决方案更易于企业应用程序访问和实用。

Arm在服务器端的主要参与者由GCPAWSAzureOCI代表。

 

AWS Graviton

与所有其他AWS Graviton处理器一样,最新的AWS Graviton4使用64Arm指令集架构。基于AWS Graviton4Amazon EC2 R8g实例的性能比基于AWS Gravaton3Amazon EC2 R7g实例高出30%。该处理器非常适合高性能数据库、内存缓存和实时大数据分析等要求苛刻的工作负载。AWS GravitonNeoverse架构的一个例子,旨在以世界级的性能、效率和计算密度处理各种云原生工作负载。这种架构非常适合云计算。2024年,Arm宣布推出高达128核的Neoverse V3,目标是最高性能的应用程序。

 

谷歌Axion处理器

20244月,谷歌宣布了其新的基于ArmAxion处理器,承诺其性能比云中可用的最快的通用Arm实例提高30%,性能提高50%,能效提高60%Axion处理器,就像AWS Graviton4一样,是使用Arm Neoverse构建的:Neoverse V2 CPU

正如许多人所指出的那样,此次产品发布使谷歌与亚马逊直接竞争,以亚马逊网络服务(AWS)引领市场,以基于Arm的服务器引领其他现有参与者。

 

Azure Cobalt 100 Arm处理器

20245月,微软宣布预览新的基于Azure Cobalt 100 Arm的处理器。Cobalt 100处理器是Arm Neoverse的另一个代表。它使用N系列(N2Arm CPU设计,实现了基于云的横向扩展应用程序的优化性能。

总的来说,微软非常关注Arm,同时投资于开发人员平台和LinuxWindows上的Arm语言优化。这包括在Visual Studio 17.10 SQL Server数据工具(SSDT)中为Arm本机Visual Studio引入的ArmC++NET 8众多增强功能。

 

Oracle Ampere A1计算

20215月,Oracle发布了其首款基于Arm的计算产品:OCI Ampere A1 Compute。该产品在Oracle云基础架构(OCI)上运行。主要模型是VM。标准。A1.FlexOCI A1),其CPU核心和内存可以灵活配置,VM形状从1156个核心和每个核心164GB的内存。灵活的方法允许为你自己的项目需求进行独特的设置,匹配你的工作负载要求,并节省不必要的成本。对广泛的人工智能干扰的测试表明,AmpereOne A2是一款极具竞争力和吸引力的产品。

Oracle还通过Arm开发者生态系统以及与Ampere ComputingArmGitLabJenkins等公司的合作伙伴关系来推广Arm技术。

 

Arm招股说明书

随着目前所有大型技术公司都参与基于Arm的硬件生产,再加上Arm在软件方面的持续改进,Arm的受欢迎程度可能很快就会超过x86ARM首席执行官Rene Haas表示,ARM将在五年内占据50%的市场份额。

这里展示的基于Arm的服务器为云原生工作负载提供了令人印象深刻的性能和效率,与大数据和人工智能行业尤其相关。将工作负载迁移到基于Arm的架构相对容易,并保证大幅削减预算。

Neoverse是旨在处理云中大量信息的服务器的一种选择,微软、谷歌和AWS的最新例子就是这样。

随着Arm的崛起,Java生态系统继续得到进一步的增强。为Arm准备的不断扩展的生态系统包括Linux发行版、JavaOpenJDK运行时、框架和主要基础设施系统(web服务器、SparkKafkaCassandraElastic等)。Java社区对加强与Arm合作的生态系统的善意表明,Arm正在成为一个一级硬件平台。

容器——因其隔离性、安全性、可移植性和可重复性而受到高度重视——已适应Arm,因此可以免费获得针对Java进行调优的小型Linux容器。Docker正在投资Arm领域,确保Docker桌面在Windows on Arm上本机运行。

最新的Arm技术非常适合现代Java工作负载。将OpenJDK应用程序移动到基于Arm的服务器是提高Java性能和减少资源消耗的明智方法。将基于Arm优化的Linux容器添加到Java应用程序中更进一步,为提供最完整的Java on Arm解决方案,以获得可持续和强大的Java体验。因此,企业越来越多地转向Arm架构以降低成本和功耗。未来的路线图/招股说明书可能包括更加关注Arm硬件,以获得更好的效率结果。

免费预约试听课