首页 > 其他 > 详细

Tracing JIT

时间:2014-09-21 02:07:50      阅读:370      评论:0      收藏:0      [点我收藏+]

 

在一个从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/

Tracing JIT

原文:http://www.cnblogs.com/softidea/p/3984060.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!