亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
JVM選擇在手臂上更重要
垃圾收集調(diào)整可能不同
本地匯編值得探索
提防圖書(shū)館兼容性
首頁(yè) Java java教程 優(yōu)化ARM處理器上的Java應(yīng)用程序

優(yōu)化ARM處理器上的Java應(yīng)用程序

Jul 25, 2025 am 01:17 AM
java arm處理器

要優(yōu)化ARM上的Java應(yīng)用程序,請(qǐng)選擇一個(gè)調(diào)諧的JVM,例如Azul Zulu或Amazon Corretto,使用JDK 17或更高版本,然后進(jìn)行特定于ARM的構(gòu)建。接下來(lái),通過(guò)切換到ZGC或Shenandoah,監(jiān)視GC日志并優(yōu)化堆尺寸來(lái)調(diào)整垃圾收集。然后,通過(guò)GRAALVM本機(jī)圖像探索本地匯編,以更快地啟動(dòng)和較低的存儲(chǔ)器使用,對(duì)反射和測(cè)試進(jìn)行徹底處理。最后,驗(yàn)證庫(kù)的兼容性,尤其是對(duì)于基于JNI的依賴性,并在可能的情況下更喜歡僅Java的替代方案。

優(yōu)化ARM處理器上的Java應(yīng)用程序

傳統(tǒng)上,Java應(yīng)用程序是針對(duì)X86體系結(jié)構(gòu)開(kāi)發(fā)和優(yōu)化的,但是隨著基于ARM的系統(tǒng)的越來(lái)越受歡迎,例如Apple的M系列芯片,AWS Graviton實(shí)例,甚至是嵌入式設(shè)備,這對(duì)于如何理解如何優(yōu)化Java工作負(fù)載越來(lái)越重要。

優(yōu)化ARM處理器上的Java應(yīng)用程序

這是您需要知道的,以便在ARM硬件運(yùn)行時(shí)從Java應(yīng)用程序中獲得最大收益。


JVM選擇在手臂上更重要

并非所有JVM在手臂上的表現(xiàn)都同樣出色。盡管OpenJDK被廣泛使用,但并非每個(gè)供應(yīng)商都為ARM提供優(yōu)化的構(gòu)建。例如:

優(yōu)化ARM處理器上的Java應(yīng)用程序
  • 眾所周知, Azul ZuluAmazon Corretto對(duì)ARM具有可靠的支持和性能調(diào)整。
  • GRAALVM還具有良好的ARM兼容性,并且在某些情況下可以提供更好的性能,尤其是在本機(jī)圖像匯編中。

您應(yīng)該始終檢查您使用的JVM的版本以及是否專門調(diào)整了ARM。有些構(gòu)建可能仍依賴于尚未完全優(yōu)化的JIT編譯器或GC實(shí)現(xiàn)。

另外,請(qǐng)確保您正在使用最近的JDK版本。正在積極添加手臂改善,以添加到新的版本中,因此建議使用JDK 17或更高版本。

優(yōu)化ARM處理器上的Java應(yīng)用程序

垃圾收集調(diào)整可能不同

由于內(nèi)存架構(gòu)和CPU緩存的差異,垃圾收集行為可能會(huì)有所不同。默認(rèn)的GC可能不是手臂上的最佳選擇。

如果您看到的停頓時(shí)間高或吞吐量較高,則超出預(yù)期:

  • 嘗試從G1GC (通常默認(rèn))切換到ZGCShenandoah ,它們都是低pause collector的,并且在多核ARM CPU上很好地?cái)U(kuò)展。
  • 密切監(jiān)視GC日志 - 諸如GCViewer , GceasyJFR(Java Flight Recorder)之類的工具可幫助點(diǎn)瓶頸。
  • 堆尺寸很重要:在帶有大型RAM的手臂機(jī)上,不要以為更大的堆總是更好。測(cè)試不同的尺寸,并注意內(nèi)存帶寬飽和度。

一些快速的標(biāo)志可以嘗試:

  • -XX: UseZGC
  • -Xmx-Xms明確設(shè)置
  • -XX: PrintGCDetails -Xlog:gc*

本地匯編值得探索

ARM平臺(tái)(尤其是在云環(huán)境中)的一個(gè)重要優(yōu)勢(shì)是成本效率。運(yùn)行更輕,更快的啟動(dòng)服務(wù)有助于最大程度地利用這一好處。

GRAALVM本機(jī)圖像之類的工具可讓您提前編譯Java應(yīng)用程序?yàn)楸緳C(jī)二進(jìn)制文件。這可以大大減少啟動(dòng)時(shí)間,并降低運(yùn)行時(shí)內(nèi)存的使用情況,即在ARM上的集裝箱或無(wú)服務(wù)器設(shè)置中的鍵。

但是,本地圖像不是置換式替換。您需要:

  • 仔細(xì)處理反思和動(dòng)態(tài)類負(fù)載
  • 使用配置文件或跟蹤代理來(lái)捕獲運(yùn)行時(shí)行為
  • 徹底測(cè)試 - 本地編譯時(shí),某些圖書(shū)館的行為會(huì)有所不同

它比僅僅在JVM上運(yùn)行更復(fù)雜,但是如果快速開(kāi)始或資源較低的使用是至關(guān)重要的,那么值得投入時(shí)間。


提防圖書(shū)館兼容性

盡管大多數(shù)純Java代碼在ARM上運(yùn)行良好,但問(wèn)題通常來(lái)自本地依賴性?;贘NI的庫(kù)(例如,用于加密,壓縮或數(shù)據(jù)庫(kù))有時(shí)沒(méi)有兼容ARM兼容的本機(jī)二進(jìn)制文件。

常見(jiàn)的罪魁禍?zhǔn)装ǎ?/p>

  • Netty與本地運(yùn)輸
  • OpenSSL包裝紙
  • 依靠本地鉤子的記錄或分析工具

避免驚喜:

  • 查看圖書(shū)館文檔以獲取手臂支撐
  • 使用jinfolsof等工具檢查已加載的本機(jī)庫(kù)
  • 在可能的情況下更喜歡跨平臺(tái)或僅Java

如果您遇到了缺失的本地LIB,請(qǐng)尋找更新的版本或考慮貢獻(xiàn)補(bǔ)丁 - 如今,開(kāi)放的源社區(qū)越來(lái)越專注于手臂。


基本上就是這樣。優(yōu)化ARM上的Java應(yīng)用程序并不一定要復(fù)雜,但確實(shí)需要注意JVM選擇,垃圾收集設(shè)置,本機(jī)匯編選項(xiàng)和依賴關(guān)系兼容性。牢記這些區(qū)域,您將竭盡全力順利進(jìn)行性能。

以上是優(yōu)化ARM處理器上的Java應(yīng)用程序的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
VSCODE設(shè)置。JSON位置 VSCODE設(shè)置。JSON位置 Aug 01, 2025 am 06:12 AM

settings.json文件位于用戶級(jí)或工作區(qū)級(jí)路徑,用于自定義VSCode設(shè)置。1.用戶級(jí)路徑:Windows為C:\Users\\AppData\Roaming\Code\User\settings.json,macOS為/Users//Library/ApplicationSupport/Code/User/settings.json,Linux為/home//.config/Code/User/settings.json;2.工作區(qū)級(jí)路徑:項(xiàng)目根目錄下的.vscode/settings

如何使用JDBC處理Java的交易? 如何使用JDBC處理Java的交易? Aug 02, 2025 pm 12:29 PM

要正確處理JDBC事務(wù),必須先關(guān)閉自動(dòng)提交模式,再執(zhí)行多個(gè)操作,最后根據(jù)結(jié)果提交或回滾;1.調(diào)用conn.setAutoCommit(false)以開(kāi)始事務(wù);2.執(zhí)行多個(gè)SQL操作,如INSERT和UPDATE;3.若所有操作成功則調(diào)用conn.commit(),若發(fā)生異常則調(diào)用conn.rollback()確保數(shù)據(jù)一致性;同時(shí)應(yīng)使用try-with-resources管理資源,妥善處理異常并關(guān)閉連接,避免連接泄漏;此外建議使用連接池、設(shè)置保存點(diǎn)實(shí)現(xiàn)部分回滾,并保持事務(wù)盡可能短以提升性能。

在Java的掌握依賴注入春季和Guice 在Java的掌握依賴注入春季和Guice Aug 01, 2025 am 05:53 AM

依賴性(di)IsadesignpatternwhereObjectsReceivedenciesenciesExtern上,推廣looseSecouplingAndEaseerTestingThroughConstructor,setter,orfieldInjection.2.springfraMefringframeWorkSannotationsLikeLikeLike@component@component,@component,@service,@autowiredwithjava-service和@autowiredwithjava-ligatiredwithjava-lase-lightike

了解Java虛擬機(jī)(JVM)內(nèi)部 了解Java虛擬機(jī)(JVM)內(nèi)部 Aug 01, 2025 am 06:31 AM

TheJVMenablesJava’s"writeonce,runanywhere"capabilitybyexecutingbytecodethroughfourmaincomponents:1.TheClassLoaderSubsystemloads,links,andinitializes.classfilesusingbootstrap,extension,andapplicationclassloaders,ensuringsecureandlazyclassloa

如何使用Java的日歷? 如何使用Java的日歷? Aug 02, 2025 am 02:38 AM

使用java.time包中的類替代舊的Date和Calendar類;2.通過(guò)LocalDate、LocalDateTime和LocalTime獲取當(dāng)前日期時(shí)間;3.使用of()方法創(chuàng)建特定日期時(shí)間;4.利用plus/minus方法不可變地增減時(shí)間;5.使用ZonedDateTime和ZoneId處理時(shí)區(qū);6.通過(guò)DateTimeFormatter格式化和解析日期字符串;7.必要時(shí)通過(guò)Instant與舊日期類型兼容;現(xiàn)代Java中日期處理應(yīng)優(yōu)先使用java.timeAPI,它提供了清晰、不可變且線

Google Chrome無(wú)法打開(kāi)本地文件 Google Chrome無(wú)法打開(kāi)本地文件 Aug 01, 2025 am 05:24 AM

ChromecanopenlocalfileslikeHTMLandPDFsbyusing"Openfile"ordraggingthemintothebrowser;ensuretheaddressstartswithfile:///;2.SecurityrestrictionsblockAJAX,localStorage,andcross-folderaccessonfile://;usealocalserverlikepython-mhttp.server8000tor

了解網(wǎng)絡(luò)端口和防火墻 了解網(wǎng)絡(luò)端口和防火墻 Aug 01, 2025 am 06:40 AM

NetworkPortSandFireWallsworkTogetHertoEnableCommunication whereSeringSecurity.1.NetWorkPortSareVirtualendPointSnumbered0-655 35,with-Well-with-Newonportslike80(HTTP),443(https),22(SSH)和25(smtp)sindiessingspefificservices.2.portsoperateervertcp(可靠,c

比較Java框架:Spring Boot vs Quarkus vs Micronaut 比較Java框架:Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

前形式攝取,quarkusandmicronautleaddueTocile timeProcessingandGraalvSupport,withquarkusoftenpernperforminglightbetterine nosserless notelless centarios.2。

See all articles