Sung in Blog

           一些技术文章 & 一些生活杂碎
由于在当前主机操作系统上加上了Java虚拟机层,Java字节码执行速度目前要比本地机器慢10到20倍。速度问题可能是影响Java推广的唯一原因。影响Java字节码执行速度的原因很多:

(1)首先,验证过程要花费时间,读入的类要在运行时验证,而传统程序在程序编译时即完成验证工作。

(2)其次,Java指令都是字节码。由于大多数操作对象超过一个字节长,因此必须读多个字节码来取得操作符和不同操作数。

(3)再次,由于Java完全采用堆栈机理,运算操作都在堆栈上执行。而传统编译器在编译时进行多种优化工作,很多计算操作可直接在寄存器中完成,大大提高程序执行速度。

(4)最后,在程序执行期间,系统要进行无用内存单元回收工作,在回收过程中,程序将停止执行,这无疑也会影响性能。以上只列出了四条主要的原因,还有其他一些因素综合作用影响着Java虚拟机的性能。

目前,针对Java虚拟机程序速度慢的问题,几家主要的公司(如Microsoft,Borland等)提出了及时编译技术(Just-In-Time)JIT。具体说,就是JIT编译器在程序开始执行前把所有字节码翻译成本地机器码,然后再将翻译后的机器码放在CPU上运行。这样,我们就用字节码编译器代替了原来的解释器,它对用户透明而又提高了执行速度。据称,Borland公司工发的JITJavaAppAccelerator能使应用程序运行速度比解释执行快5到10倍。也许将来JIT编译器会加到Java虚拟机中,从而解决所有性能问题。
posted on 2005-10-28 19:52 Sung 阅读(299) 评论(0)  编辑  收藏 所属分类: Java

只有注册用户登录后才能发表评论。


网站导航: