首页 > 其他分享 >Tracing JIT

Tracing JIT

时间:2022-10-07 18:09:21浏览次数:76  
标签:Java 函数 Tracing 路径 编译器 编译 JIT

 

在一个从Java源码编译到JVM字节码的编译器(如javac、ECJ)里,一个“编译单元”(CompilationUnit)指的是一个Java源文件。而在Dalvik VM的JIT里也有一个结构体名为“CompilationUnit”,这个千万不能跟Java源码级的编译单元弄混了——它在这里指的就是一个“trace”。 
许多早期的JIT编译器以“函数”或者“方法”为单位进行编译,并通过函数/方法内联来降低调用成本、扩大优化的作用域。但一个函数/方法中也可能存在热路径与冷路径的区别,如果以函数/方法为粒度来编译,很可能会在冷路径上浪费了编译的时间和空间,却没有得到执行速度的提升。为此,许多JIT编译器会记录方法内分支的执行频率,在JIT编译时只对热路径编译,将冷路径生成为“uncommon trap”,等真的执行到冷路径时跳回到解释器或其它备用实行方式继续。 
Tracing JIT则能够更简单有效的获取到涉及循环的热代码中的执行路径。(<< 这里回头继续补充) 

​http://hllvm.group.iteye.com/group/topic/17798​

 

​http://loccs.sjtu.edu.cn/typecho/index.php/archives/176/​



标签:Java,函数,Tracing,路径,编译器,编译,JIT
From: https://blog.51cto.com/u_15147537/5734757

相关文章

  • Real-Time Ray Tracing 2
    高斯滤波:某一个像素i,周围的像素j(包括i自己)会对其滤波做出贡献,根据j离i的距离,得到高斯对应的值给i。其伪代码大致意思是:根据j离i的距离,算出其对i的贡献,然后用j的值乘以这个......
  • Real-Time Ray Tracing 1
    实时光线追踪和实时全局光照都是光线弹射两次,实时光线追踪在一个像素上只采样一次,即只有一根光线穿过一个像素打到场景内(1SPP),在打到第一个地方叫primaryhitpoint,然后从......
  • 乘风破浪,遇见最佳跨平台跨终端框架.Net Core/.Net生态 - 超前预编译AOT和即时编译JIT
    什么是即时编译JIT在计算机领域,即时编译(JustInTime,JIT)(也是动态编译或运行时编译)是一种执行计算机代码的方式,它涉及在程序执行期间(运行时)而不是在执行之前进行编......