即时编译技术(Just-In-Time JIT技术)

即时编译技术(Just-In-Time JIT技术):Java虚拟机中用来提升速度的。

《Thinking in java 》一书中提到了该编译技术(第四版91页)

  • 如何提升:
      把程序全部或者部分翻译成本地机器码(这本来是Java虚拟机的工作),程序运行速度因此得以提升。
  • 具体过程
        1.当需要装载某个类(通常是在为该类创建第一个对象)时,编译器回先找到其.class文件,然后将该类的字节码装入内存。
        2.编译器在必要的时候(项目需要此部分代码时编译)才编译代码(这种方法称为 :惰性评估(lazy evaluation)
     
      注:第2步也还有一种方案可供选择,就是 即时编译器编译所有代码。
     但这种做法有两个缺陷
        ①这种加载动作散落在整个程序生命周期内,累加起来花更多的时间
        ②增加可执行代码的长度(字节码要比即时编译器展开后的本地机器码小的多),这导致页面调度,从而降低程序速度。
        
      Ps:页面调度算法:页式虚拟存储器实现的一个难点是设计页面调度(置换)算法,即将新页面调入内存时,如果内存中所有的物理页都已经分配出去,就要按某种策略来废弃某个页面,将其所占据的物理页释放出来,供新页面使用。(百度百科:页面调度算法)

你可能感兴趣的:(Java基础笔记)