JITWatch 是一款開源的 Java JIT(Just-In-Time)編譯分析視覺化工具,能幫助開發者理解 JVM 熱點代碼編譯決策、內聯情況、反組譯代碼等。本文詳細記錄在 Linux 系統中從原始碼構建安裝 JITWatch,以及安裝 hsdis 反組譯插件的完整步驟。

# 方式一:Git 克隆(推薦)
git clone https://github.com/AdoptOpenJDK/jitwatch.git
cd jitwatch
# 方式二:下載 ZIP 壓縮包並解壓
# https://github.com/AdoptOpenJDK/jitwatch/archive/refs/heads/master.zip
mvn clean install -DskipTests=true
說明:
clean:清理先前建置產物install:編譯、測試、打包並安裝至本地 Maven 倉庫-DskipTests=true:跳過單元測試加速建置./launchUI.sh
啟動後會開啟 JavaFX 視窗,可載入 JIT 日誌(-XX:+PrintCompilation -XX:+LogCompilation)進行分析。
JITWatch 預設僅顯示位元碼,若需查看 JIT 編譯後的原生機器碼(x86-64、ARM 等),必須安裝 hsdis。
# 1. 重新命名下載的檔案
mv hsdis-<版本>-<架構>.so hsdis-amd64.so
# 2. 放入 JDK 目錄
# 假設 JAVA_HOME=/usr/lib/jvm/java-11-openjdk
cp hsdis-amd64.so $JAVA_HOME/lib/amd64/server/
# 3. 驗證
ls -la $JAVA_HOME/lib/amd64/server/hsdis-amd64.so
hsdis-amd64.so(64 位元 Linux)jre/lib/amd64/server/ 或 lib/server/--add-modules jdk.incubator.foreign 等| 功能 | 說明 |
|---|---|
| Compilation Log | 載入 hotspot.log 分析編譯任務 |
| Suggestion | 顯示內聯建議、逃逸分析結果 |
| TriView | 原始碼、位元碼、組合語言三欄對照 |
| Code Cache | Code Cache 使用情況視覺化 |
| Sandbox | 即時編寫代碼觀察 JIT 行為 |
settings.xml 鏡像源完成上述步驟後,您將擁有一套完整的 Java JIT 編譯分析環境,能深入洞察 JVM 執行時編譯決策,為效能調優提供科學依據。
Linux 系統如何使用 QQ?Pidgin + WebQQ 協議實現 Linux 微信/QQ 互通
Linux su 命令深度解析:切換用戶身份的核心機制與實戰案例
Ubuntu 64位系統安裝 WPS Office 完整解決方案
Linux crond 定時任務完整指南:crontab 語法、環境變數坑、日誌靜默、系統級 vs 用戶級
Linux 下 Node.js Express 框架快速入門:從安裝到首個 Web 服務
Ubuntu 建立虛擬網卡 (IP Alias) 實現單網卡多 IP:修改 /etc/network/interfaces 完整範例
Linux Xconfigurator 指令完整參考:Red Hat 經典 XFree86 互動式配置工具
Linux 共享中斷處理技巧:request_irq SA_SHIRQ、dev_id 唯一性、硬體支援與處理程式判斷邏輯