1. 程式人生 > >hotspot原始碼(JDK7)-原始碼結構說明

hotspot原始碼(JDK7)-原始碼結構說明

├─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                             單元測試