OpenJDK源码包说明

openjdk

—— corba:不流行的多语言、分布式通讯接口

—— hotspot:Java 虚拟机

—— jaxp:XML 处理

—— jaxws:一组 XML web services 的Java API

—— jdk:java 开发工具包

—— —— 针对操作系统的部分

—— —— share:与平台无关的实现

—— langtools:Java 语言工具

—— nashorn:JVM 上的JavaScript运行时


其中Hotspot就是我们要看的JVM包

Hotspot:全称 Java HotSpot Performance Engine,是 Java 虚拟机的一个实现,包含了服务器版和桌面应用程序版。利用 JIT 及自适应优化技术(自动查找性能热点并进行动态优化)来提高性能。

使用java -version可以查看 Hotspot 的版本。


二、Hotspot的目录结构

├─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                            单元测试

你可能感兴趣的:(OpenJDK源码包说明)