當前位置:編程學習大全網 - 源碼下載 - Hotspot的源碼應該怎樣閱讀

Hotspot的源碼應該怎樣閱讀

如果妳下的只是HotSpot VM的代碼的話那好辦,Oracle JDK 6/Oracle JDK 7/OpenJDK 6/OpenJDK 7裏的HotSpot VM基本上目錄結構都是壹樣的。

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

妳看到的目錄結構應該是類似這樣的

  • 上一篇:關於cocos2d-x的幾個問題
  • 下一篇:自動調用源代碼
  • copyright 2024編程學習大全網