OpenJDK-Hotspot源碼包目錄結構

開啓正文以前,先說一下源碼剖析這一系列,就以「死磕到底」的精神貫徹始終,JDK--》JRE--》JVM(以openJDK代替)java

1、OpenJDK 源碼的目錄結構web

openJDK源碼結構圖

源碼包下載地址:長期有效
           https://pan.baidu.com/s/176nvB7zD9UrhGYLLPwFlhA     密碼:p1on

openjdk

  1. —— corba:不流行的多語言、分佈式通信接口 1.—— hotspot:Java 虛擬機
  2. —— jaxp:XML 處理
  3. —— jaxws:一組 XML web services 的 Java API
  4. —— jdk:java 開發工具包
  5. —— —— 針對操做系統的部分
  6. —— —— share:與平臺無關的實現 1.—— langtools:Java 語言工具
  7. —— nashorn:JVM 上的 JavaScript 運行時

其中Hotspot就是咱們要看的JVM包服務器

  1. Hotspot:全稱 Java HotSpot Performance Engine,是 Java 虛擬機的一個實現,包含了服務器版和桌面應用程序版。利用 JIT 及自適應優化技術(自動查找性能熱點並進行動態優化)來提升性能。
  2. 使用 java -version 能夠查看 Hotspot 的版本。 輸入圖片說明

2、HotSpot的目錄結構數據結構

  1. ├─agent Serviceability Agent的客戶端實現
  2. ├─make 用來build出HotSpot的各類配置文件
  3. ├─src HotSpot VM的源代碼
  4. │ ├─cpu CPU相關代碼(彙編器、模板解釋器、ad文件、部分runtime函數在這裏實現)
  5. │ ├─os 操做系相關代碼
  6. │ ├─os_cpu 操做系統+CPU的組合相關的代碼
  7. │ └─share 平臺無關的共通代碼
  8. │ ├─tools 工具
  9. │ │ ├─hsdis 反彙編插件
  10. │ │ ├─IdealGraphVisualizer 將server編譯器的中間代碼可視化的工具
  11. │ │ ├─launcher 啓動程序「java」
  12. │ │ ├─LogCompilation 將-XX:+LogCompilation輸出的日誌(hotspot.log)整理成更容易閱讀的格式的工具
  13. │ │ └─ProjectCreator 生成Visual Studio的project文件的工具
  14. │ └─vm HotSpot VM的核心代碼
  15. │ ├─adlc 平臺描述文件(上面的cpu或os_cpu裏的*.ad文件)的編譯器
  16. │ ├─asm 彙編器接口
  17. │ ├─c1 client編譯器(又稱「C1」)
  18. │ ├─ci 動態編譯器的公共服務/從動態編譯器到VM的接口
  19. │ ├─classfile 類文件的處理(包括類加載和系統符號表等)
  20. │ ├─code 動態生成的代碼的管理
  21. │ ├─compiler 從VM調用動態編譯器的接口
  22. │ ├─gc_implementation GC的實現
  23. │ │ ├─concurrentMarkSweep Concurrent Mark Sweep GC的實現
  24. │ │ ├─g1 Garbage-First GC的實現(不使用老的分代式GC框架)
  25. │ │ ├─parallelScavenge ParallelScavenge GC的實現(server VM默認,不使用老的分代式GC框架)
  26. │ │ ├─parNew ParNew GC的實現
  27. │ │ └─shared GC的共通實現
  28. │ ├─gc_interface GC的接口
  29. │ ├─interpreter 解釋器,包括「模板解釋器」(官方版在用)和「C++解釋器」(官方版不在用)
  30. │ ├─libadt 一些抽象數據結構
  31. │ ├─memory 內存管理相關(老的分代式GC框架也在這裏)
  32. │ ├─oops HotSpot VM的對象系統的實現
  33. │ ├─opto server編譯器(又稱「C2」或「Opto」)
  34. │ ├─prims HotSpot VM的對外接口,包括部分標準庫的native部分和JVMTI實現
  35. │ ├─runtime 運行時支持庫(包括線程管理、編譯器調度、鎖、反射等)
  36. │ ├─services 主要是用來支持JMX之類的管理功能的接口
  37. │ ├─shark 基於LLVM的JIT編譯器(官方版裏沒有使用)
  38. │ └─utilities 一些基本的工具類
  39. └─test 單元測試
相關文章
相關標籤/搜索