openjdk 8 的 hotspot 原始碼目錄結構
阿新 • • 發佈:2021-09-30
openjdk 8 的 hostspot 原始碼目錄結構大致如下。
├─agent Serviceability Agent的客戶端實現 ├─make 用來build出HotSpot的各種配置檔案 ├─src HotSpot VM的原始碼 │ ├─cpu CPU相關程式碼(彙編器、模板直譯器、ad檔案、部分runtime函式在這裡實現) │ ├─os 操作系相關程式碼 │ ├─os_cpu 作業系統+CPU的組合相關的程式碼 │ └─share 平臺無關的共通程式碼 │ ├─tools 工具 │ │ ├─hsdis 反彙編外掛 │ │ ├─IdealGraphVisualizer 將server編譯器的中間程式碼視覺化的工具 │ │ ├─launcher 啟動程式“java” │ │ ├─LogCompilation 將-XX:+LogCompilation輸出的日誌(hotspot.log)整理成更容易閱讀的格式的工具 │ │ └─ProjectCreator 生成Visual Studio的project檔案的工具 │ └─vm HotSpot VM的核心程式碼 │ ├─adlc 平臺描述檔案(上面的cpu或os_cpu裡的*.ad檔案)的編譯器 │ ├─asm 彙編器介面 │ ├─c1 client編譯器(又稱“C1”) │ ├─ci 動態編譯器的公共服務/從動態編譯器到VM的介面 │ ├─classfile 類檔案的處理(包括類載入和系統符號表等) │ ├─code 動態生成的程式碼的管理 │ ├─compiler 從VM呼叫動態編譯器的介面 │ ├─gc_implementation GC的實現 │ │ ├─concurrentMarkSweep Concurrent Mark Sweep GC的實現 │ │ ├─g1 Garbage-First GC的實現(不使用老的分代式GC框架) │ │ ├─parallelScavenge ParallelScavenge GC的實現(server VM預設,不使用老的分代式GC框架) │ │ ├─parNew ParNew GC的實現 │ │ └─shared GC的共通實現 │ ├─gc_interface GC的介面 │ ├─interpreter 直譯器,包括“模板直譯器”(官方版在用)和“C++直譯器”(官方版不在用) │ ├─libadt 一些抽象資料結構 │ ├─memory 記憶體管理相關(老的分代式GC框架也在這裡) │ ├─oops HotSpot VM的物件系統的實現 │ ├─opto server編譯器(又稱“C2”或“Opto”) │ ├─prims HotSpot VM的對外介面,包括部分標準庫的native部分和JVMTI實現 │ ├─runtime 執行時支援庫(包括執行緒管理、編譯器排程、鎖、反射等) │ ├─services 主要是用來支援JMX之類的管理功能的介面 │ ├─shark 基於LLVM的JIT編譯器(官方版裡沒有使用) │ └─utilities 一些基本的工具類 └─test 單元測試
參考
作者:PP傑
出處:http://www.cnblogs.com/newber/
博學之,審問之,慎思之,明辨之,篤行之。