Yudi Zheng


  • Home

  • About

Introduction to Graal

Posted on 2018-03-20 |

Introduction

对于大部分应用开发者来说,Java编译器指的是JDK自带的javac指令。这一指令可将Java源程序编译成.class文件,其中包含的代码格式我们称之为Java bytecode(Java字节码)。这种代码格式无法直接运行,但可以被不同平台JVM中的interpreter解释执行。由于interpreter效率低下,JVM中的JIT compiler(即时编译器)会在运行时有选择性地将运行次数较多的方法编译成二进制代码,直接运行在底层硬件上。Oracle的HotSpot VM便附带两个用C++实现的JIT compiler:C1及C2。

与interpreter,GC等JVM的其他子系统相比,JIT compiler并不依赖于诸如直接内存访问的底层语言特性。它可以看成一个输入Java bytecode输出二进制码的黑盒,其实现方式取决于开发者对开发效率,可维护性等的要求。Graal是一个以Java为主要编程语言,面向Java bytecode的编译器。与用C++实现的C1及C2相比,它的模块化更加明显,也更加容易维护。Graal既可以作为动态编译器,在运行时编译热点方法;亦可以作为静态编译器,实现AOT编译。在Java 10中,Graal作为试验性JIT compiler一同发布(JEP 317)。这篇文章将介绍Graal在动态编译上的应用。有关静态编译,可查阅JEP 295或Substrate VM。

Read more »

Substrate VM 笔记

Posted on 2017-12-25 |

Introduction

近期开源的Substrate VM(下称SVM)是一个构建在Graal Compiler上的,支持ahead-of-time (AOT) compilation的编译及运行框架。它的设计初衷是提供一个高startup performance,低memory print,以及能无缝衔接C代码(与JNI相较)的runtime,并能完美适配Truffle语言实现。

Read more »

[ECOOP '17] An Empirical Study on Deoptimization in the Graal Compiler

Posted on 2017-05-17

by Yudi Zheng, Lubomir Bulej, and Walter Binder.

In this paper, we analyze the deoptimization behavior of the Graal compiler integrated in HotSpot VM. In particular, we discuss two buggy cases regarding repeated deoptimization/recompilation. We also implement two additional deoptimization strategies to study the effect of tolerating deoptimizations w.r.t. the startup performance.

Download at [link].

[OOPSLA '15] Accurate Profiling in the Presence of Dynamic Compilation

Posted on 2015-10-23

by Yudi Zheng, Lubomir Bulej, and Walter Binder.

In this paper, we present a technique to make bytecode-instrumentation-based profiler aware of optimizations performed by the dynamic compiler. We implement our approach in Graal and demonstrate its significance with concrete profilers. In particular, we quantify the impact of escape analysis on allocation profiling, object life-time analysis, and the impact of method inlining on callsite profiling.

Download at [link].

Yudi Zheng (郑雨迪)

Yudi Zheng (郑雨迪)

Researcher @ Oracle Labs

4 posts
3 tags
GitHub LinkedIn
© 2018 Yudi Zheng (郑雨迪)
Powered by Hexo
|
Theme — NexT.Pisces v5.1.3