Java虚拟机即时编译器技术JIT
Java虚拟机中有许多附加技术用以提升速度,尤其是与加载器操作相关的,被称为“即时”(Just-In-Time,JIT)编译器的技术。这种技术可以把程序全部或部分翻译成本地机器码(这本来是JVM的工作),程序运行速度因此得以提升。当需要装载某个类时,编译器会先找到其.class文件,然后将该类的字节码装入内存。此时,有两种方案可供选择:
(1)一种就是让即时编译器编译所有代码。但这种做法有两个缺陷:这种加载动作散落在整个程序生命周期内,累加起来要花更多时间;并且会增加可执行代码的长度(字节码要比即时编译器展开后的本地机器码小很多),这将导致页面调度,从而降低程序速度。
(2)另一种做法称为惰性评估(lazy evaluation),意思是即时编译器只在必要的时候才编译代码,这样,从不会被执行的代码也许就压根不会被JIT所编译。新版JDK中的Java HotSpot技术就采用了类似方法,代码每次被执行的时候都会做一些优化,所以执行的次数越多,它的速度就越快。
相关推荐
89467505 2020-05-08
82921934 2020-05-04
82921934 2020-02-18
80991231 2019-11-04
86123158 2019-07-01
82921934 2019-06-27
cHeNjUiOr 2010-06-16
89921237 2019-03-09
86284457 2020-11-10
wanyi0 2020-11-03
84520193 2020-06-26
84520193 2020-05-29
89481259 2020-04-22
86921239 2020-01-13
89467505 2020-01-05
82467413 2019-12-31
82921934 2019-12-23
84520193 2019-12-16
徐建岗网络管理 2019-12-15