码迷,mamicode.com
首页 > 其他好文 > 详细

Tracing JIT

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

标签:http   io   java   ar   文件   sp   on   代码   c   

 

在一个从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   io   java   ar   文件   sp   on   代码   c   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!