jrockit号称是世界上最快的jvm,当然主流的jvm就hotspot和jrockit,所以得到这个最快的jvm的称号还是很不容易的。
[img]http://dl2.iteye.com/upload/attachment/0096/0382/e6b2fbcf-e769-35e2-abe9-76f4de08217d.jpg[/img]
如上图所示,jrockit经过了三个阶段的优化
1 just in time (jit)优化
据资料记载,jit会把jvm执行的机器码(在宿主机上执行的机器码)记录下来以备下次直接使用,从而达到减少耗时提高效率的小姑。
2 monitors thread优化
虚拟机要启动一个复杂的低消耗的线程实时的为执行频率高的方法做优化
3 runs optimization
虚拟机在后台优化使用频率高的方法。与第二阶段做的事情是一样的,但是方式不一样。
以下代码为转载
优化前:
优化后:
[img]http://dl2.iteye.com/upload/attachment/0096/0382/e6b2fbcf-e769-35e2-abe9-76f4de08217d.jpg[/img]
如上图所示,jrockit经过了三个阶段的优化
1 just in time (jit)优化
据资料记载,jit会把jvm执行的机器码(在宿主机上执行的机器码)记录下来以备下次直接使用,从而达到减少耗时提高效率的小姑。
2 monitors thread优化
虚拟机要启动一个复杂的低消耗的线程实时的为执行频率高的方法做优化
3 runs optimization
虚拟机在后台优化使用频率高的方法。与第二阶段做的事情是一样的,但是方式不一样。
以下代码为转载
优化前:
class A {
B b;
public void foo() {
y = b.get();
...do stuff...
z = b.get();
sum = y + z;
}
}
class B {
int value;
final int get() {
return value;
}
}
优化后:
class A {
B b;
public void foo() {
y = b.value;
...do stuff...
sum = y + y;
}
}
class B {
int value;
final int get() {
return value;
}
}