openjdk源码阅读
http://rednaxelafx.iteye.com/blog/1549577
http://blog.csdn.net/fancyerii/article/details/7007503
├—agent Serviceability Agent的实现
├—make 用来build出HotSpot的各种配置文件
├—src HotSpot VM的源代码
│ ├—cpu CPU相关代码
│ ├—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编译器
│ ├—ci 动态编译器的公共服务/接口
│ ├—classfile 类文件的处理(包括类加载和系统符号表等)
│ ├—code 动态生成的代码的管理
│ ├—compiler 编译器接口
│ ├—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编译器
│ ├—prims HotSpot VM的对外接口,包括部分标准库的native部分和JVMTI实现
│ ├—runtime 运行时支持库(包括线程管理、编译器调度、锁、反射等)
│ ├—services 主要是用来支持JMX之类的管理功能的接口
│ ├—shark 基于LLVM的JIT编译器(官方版里没有使用)
│ └—utilities 一些基本的工具类
└—test 单元测试
openjdk源码阅读的更多相关文章
- 转-OpenJDK源码阅读导航跟编译
OpenJDK源码阅读导航 OpenJDK源码阅读导航 博客分类: Virtual Machine HotSpot VM Java OpenJDK openjdk 这是链接帖.主体内容都在各链接中. ...
- openjdk源码阅读导航
转自:http://rednaxelafx.iteye.com/blog/1549577 这是链接帖.主体内容都在各链接中. 怕放草稿箱里过会儿又坑掉了,总之先发出来再说…回头再慢慢补充内容. 先把I ...
- OpenJDK 源码阅读之 LinkedList
概要 类继承关系 java.lang.Object java.util.AbstractCollection<E> java.util.AbstractList<E> java ...
- java8 ArrayList源码阅读
转载自 java8 ArrayList源码阅读 本文基于jdk1.8 JavaCollection库中有三类:List,Queue,Set 其中List,有三个子实现类:ArrayList,Vecto ...
- openJDK之如何下载各个版本的openJDK源码
如果我们需要阅读openJDK的源码,那么需要下载,那么该去哪下载呢? 现在JDK已经发展到版本10了,11已经处于计划中,如果需要特定版本的openJDK,它们的下载链接在哪呢? 1.openJDK ...
- 走进JVM之一 自己编译openjdk源码
想要深入了解JVM,就必须了解其实现机制.了解JVM实现的最好方法便是自己动手编译JDK.好了,让我们开始吧! 1. 准备工作 获取OpenJDK源码 本次编译选择的是OpenJDK7u,官方源码包 ...
- ThreadPoolExecutor 源码阅读
目录 ThreadPoolExecutor 源码阅读 Executor 框架 Executor ExecutorService AbstractExecutorService 构造器 状态 Worke ...
- [置顶] OpenJDK源码研究笔记(九)-可恨却又可亲的的异常(NullPointerException)
可恨的异常 程序开发过程中,最讨厌异常了. 异常代表着程序出了问题,一旦出现,控制台会出现一屏又一屏的堆栈错误信息. 看着就让人心烦. 对于一个新人来讲,遇到异常经常会压力大,手忙脚乱,心生畏惧. 可 ...
- OpenJDK源码研究笔记(五)-缓存Integer等类型的频繁使用的数据和对象,大幅度提升性能(一道经典的Java笔试题)
摘要 本文先给出一个看似很简单实则有深意的Java笔试面试题,引出JDK内部的缓存. JDK内部的缓存,主要是为了提高Java程序的性能. 你能答对这道"看似简单,实则有深意"的J ...
随机推荐
- jquery+easyui开发、培训文档
目 录 1.... Accordion(可折叠标签)......................................................................... ...
- apk签名打包时报master password is required to unlock the password database.错误,或者signtrue versions无法勾选,以及Error:Execution failed for task ':app:lintVitalRelease'.
1.如果在签名时android studio报"Master password is required to unlock the password database.The passwor ...
- R语言 data.frame 大全
A data frame is used for storing data tables. It is a list of vectors of equal length. For example, ...
- CentOS执行ping命令报错 name or service not know
在虚拟机上安装的CentOS,但是当执行ping命令的时候,提示name or service not known 解决方法如下: 1. 添加DNS服务器 vi /etc/resolv.conf 1 ...
- e816. 创建工具栏
A toolbar can be either horizontal or vertical. When the orientation is horizontal, the objects in t ...
- e838. 使JTabbedPane中的卡片能用按键的方式选取
Setting a mnemonic on a tab allows the tab to be selected with a keystroke. For example, if the mnem ...
- java做web项目比较多
WEB就是轻量级:如果要炫,FLEX或即将普及的html5.0都能做到像C/S那样. java做web项目比较多:如果是桌面程序,还是走C/S比较成熟. 如果是B/S架构的,后台还是JAVA,前台可以 ...
- CI框架 -- 网页缓存
CodeIgniter 可以让你通过缓存页面来达到更好的性能. 尽管 CodeIgniter 已经相当高效了,但是网页中的动态内容.主机的内存 CPU 和数据库读取速度等因素直接影响了网页的加载速度. ...
- Linux Shell nohup命令用法
linux的nohup命令的用法. 在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行.比如我们要运行mysql在后台: /us ...
- C# 将DateTime.Now.DayOfWeek的值转为中文星期
1. 如果常规使用DateTime.Now.DayOfWeek则得到是英文,如果加ToString后再加上相关参数(“G”.“g”.“X”.“x”.“F”.“f”.“D”或“d”),则还会有所变化. ...