深入理解JVM--类的执行机制

在完成将class文件信息加载到JVM并产生class对象之后,就可以执行Class对象的静态方法或者实例方法对对象进行调用了。JVM在源代码编译阶段将源代码编译为字节码文件,字节码是一种中间代码的方式,要由JVM在运行时进行解释执行,这种方式称之为解释执行方式。

1、字节码的解释执行

SunJDK是基于栈的体系结构来执行字节码的,基于栈的好处是代码紧凑,体积小。每个线程创建之后,都会产生一个程序计数器(又称PC计数器)和栈,栈中存在若干的栈帧,每个方法的调用都会产生栈帧。栈帧主要包含两部分,局部变量和操作数栈,局部变量用户存放方法中的局部变量和参数,操作数栈用于存放方法中性过程中产生的中间结果,栈帧中还会有一些杂用的空间,用于存放指向方法已解析的常量池的引用,一些JVM内部所需要的数据等。如下图所示

aaarticlea/png;base64,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" alt="" />

1)指令解释执行

方法的指令执行是经典的冯诺依曼体系中饿FDX的循环方式,即取一条指令,然后分派,执行。如下面的代码

while(true){
int code=fetchNextCode();
switch(code){
case IADD:
// do add
case …:
// do sth.
}
}

以上程序很简单的满足了我们的需求,也是FDX循环模式一个很简单的实现,但是这段程序每次执行完毕都会回到程序的原点,重新判断重新执行,效率是比较差的,所以,有人提出了一种叫token-threding的方式,使用令牌来进行处理,如下面的代码

IADD:{
// do add;
fetchNextCode();
dispatch();
}
ICONST_0:{
//do sth
fetchNextCode();
dispatch(); }

这段代码冗余了fetchNextCode和dispatch两条指令,性能相对会好一些(为什么性能会好?详情请参看博文JAVA类的执行机制)但是使用这种方法由于冗余相关指令,因此占用的内存会大一些。

2)  栈顶缓存

在方法执行过程中,可以看到有很多重要的操作将数据放入到操作数栈,这会导致寄存器和内存要不断的进行交换数据,SunJDK采用可栈顶缓存,即将本来位于操作数栈的值直接缓存在寄存器上,这样对于大部分只需要一个操作数的操作而言,无需将数据放入操作数栈,可直接在寄存器上进行计算,然后放回操作数栈。

3)  部分栈帧共享

当一个方法调用另外一个方法的时候,通常会传入另一个方法的参数存放在操作数栈,SunJDK为此做了一个优化,就是当调用方法时,后一方可以将前一方的操作数栈作为当前方法的局部变量,从而节省数据copy带来的损耗。

当然SunJDK为了提高数据执行的效率,做了很多优化,这里有不一一列举了。

2、编译执行

解释执行的效率是很低的,为了提升代码编译的执行性能,SunJDK也提供了编译执行的机制(N多教科书上说java是一种解释型语言,都是不全面的,JVM是可以执行编译执行的),编译在运行时进行,通常成为JIT编译器。SunJDK对执行频率高的代码进行编译,而对执行频率不高的代码仍然进行解释执行,因此SunJDK又被称作为HotspotVM,对于编译,SunJDK提供了2种方式,clint complier(-clint)和server complier(-server)。

Clint complier又被成为C1,较为轻量级,只做少量的性能开销比较高的一些优化,占用内存较少,适合做桌面的交互式应用。在寄存器分配策略上,JDK6采用了线性扫描寄存器的方式(具体可参照http://www.bluedavy.com/book/reference/LSRA.pdf),在其他方面的优化主要包括:方法内联、去虚拟化、冗余消除等!

1) 方法内联

对于java语言来说,通常需要调用多个方法来完成功能,执行的时候还需要多次传参和返回值传递,因此C1采用了方法内联的方式,把用到的方法直接植入到当前的方法中,示例如下

public void buy(){
saveOrder();
saveDetail();
} public void saveOrder(){
//do save saveOrder
} public void saveDetail(){
//do write detail
}

当编译的时候,发现编译后的buy方法的字节码≤35个字节(这个可以通过JVM启动的时候设置参数-XX:MaxInlineSize=35来进行控制),则该程序会演变成下面的结构!

public void buy(){
//do save saveOrder
//do write detail
}

2)  去虚拟化

去虚拟化是指在状态class文件之后进行层次分析,如果发现类中的方法只提供了一个实现类,那么对于条用了此方法的代码,也就可以通过方法内联来提高性能。如下列代码

interface OrderInterface{
public void buy();
}
class Order implements OrderInterface{ @Override
public void buy() {
//do buy
}
}
public class Test{
public void testBuy(Order order){
order.buy();
}

当JVM在编译的时候发现buy方法只有一个实现的时候,就演变成以下结构

public class Test{
public void testBuy(Order order){
//do buy
}
}

3)  冗余消除

冗余消除是指在编译时,根据运行时的状况进行代码折叠或削除,如下代码

import com.sun.org.apache.commons.logging.Log;
import com.sun.org.apache.commons.logging.LogFactory;
public class Test{ private final static Log log = LogFactory.getLog(Test.class); private final static boolean isDebug = log.isDebugEnabled(); public void execute(){
if(isDebug)
log.debug("Test.execute() has been excuted");
//do sth
}
}

这段代码在编译的时候如果被监测到isDebug是false,则执行完C1编译之后就变成了如下代码

public class Test{

    public void execute(){
//do sth
}
}

这也是很多时候优秀的程序员不直接写log.debug而要先写一个判断的原因。

Server complier又称为C2编译,就比较重量级,这个我们下次再讲。今天先到此吧,休息一下,哈哈!

上一篇:不恰当的update语句使用主键和索引导致mysql死锁


下一篇:关于ios 程序加载百度地图lib,出现链接错误:找不到符号 (null): _OBJC_CLASS_$_BMKMapManager的解决办法