自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (1)
  • 收藏
  • 关注

原创 JVM JIT(JAMVM)

简介为了提高虚拟机的执行效率,对于解释执行的虚拟机来说,解析字节码指令和指令分发的开销时非常巨大的。可以想象 Native Code 执行 1 + 2 仅仅需要一行机器指令,而栈则需要 取指令->匹配指令 handler -> 跳转到 handler -> 执行 handler 至少 4 条机器指令。简单来说,执行一条 jvm 指令需要耗费数倍于同等机器指令的周期。对于偶尔...

2018-11-30 10:44:28 988

原创 JVM 解释器优化(JAMVM)

简介在前面的文章中有介绍过 miniJVM 的具体实现,但是 miniJVM 的解释器部分仍然是比较简单的 Switch 指令分发,从执行效率上来说是比较落后的。同样是轻量级的 JVM,jamvm 在性能方面就要优秀很多,最新版本 2.0.0 支持了 openjdk8,并且支持 java 8 的所有特性,包括 miniJVM 不支持的 Reference。jamvm 已经非常古老了,Andr...

2018-11-21 17:48:36 1093

原创 记一次 JVM 源码分析(5.异常处理)

异常异常打印Java 如果发生异常,通常会调用 Throwable.printStackTrace 去打印堆栈信息。堆栈信息包括完整类名,方法名,java 文件名,行号而这样的信息根据发生 Crash 线程所经历的n个方法会打印出n行。整个过程被称为栈回朔栈回朔栈回朔的过程发生于异常被 New 出来的时候Throwable.backtrace 这个 Throwbale 的成员变量就...

2018-11-14 12:21:51 406

原创 记一次 JVM 源码分析(4.解释器与方法执行)

简介miniJVM 作为一个 mini 的 Java VM,实现了 Switch 解释器,并不支持主流 JVM 的 JIT 或者更为复杂的 AOT。但这样对于我们了解字节码的执行已经足够了。字节码指令基于堆栈字节码指令类似于汇编指令,但是不同的是:一行汇编代码的格式一般都是 - opcode 操作数1 操作数2然而字节码指令格式是 opcode + 栈字节码的所有操作数都存在运行...

2018-11-13 15:33:07 1302 4

原创 记一次 JVM 源码分析(3.内存管理与GC)

简介miniJVM 的内存管理的实现较为简单

2018-11-08 12:41:25 1416 1

原创 记一次 JVM 源码分析(2.初始化与类加载)

前言首先概括一下 JVM 运行流程:JVM 初始化  加载主类    运行 Main 方法      加载其他类        运行其他方法  GC 开始JVM 初始化JVM 的入口位于 /mini_jvm/main.c ----- main() 方法main 方法的主要任务是:解析参数并保存留到后面初始化的时候读取最后带着参数 List 进入到真正的入口:ret =...

2018-11-05 22:06:11 856 4

原创 记一次 JVM 源码分析(1.简介)

简介  本来打算直接看 ART 的源码,一看 Android P 的已经十分庞大了,所以打算找一个小型的 JVM 热热身,想起了以前功能机上的 Java KVM,但是又太过古老。翻 github 偶然翻到一个开源的 Mini Jvm,竟然还支持 Java8 标准,所以准备以此入手了解 JVM。Mini JVMMiniJVM 原始 repo:https://github.com/digital...

2018-11-05 20:59:22 729

原创 JAMVM + openjdk8 编译和调试

编译JAMVM 默认使用 GNUClasspath,但是这样的话仅支持 java1.5。这里主要介绍 JAMVM 搭配 openjdk classpath 使用,可以支持到 openjdk9,这里采用 openjdk8:源码下载这里千万千万不要直接下载官网的源码,就是下面这个链接,因为 release 好久没更新,有些 fix 没进去。https://sourceforge.net/pr...

2018-11-27 21:17:28 1802

刷刷Android B端早期demo

刷刷Android B端早期demo

2016-09-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除