代码之家  ›  专栏  ›  技术社区  ›  igorgue

JIT编译器如何帮助应用程序的性能?

  •  6
  • igorgue  · 技术社区  · 16 年前

    我刚读过 Android的性能提高了450%,因为它添加了一个JIT编译器 ,我知道什么是JIT,但我真的不明白为什么它比正常的编译代码更快?或者从Android平台(Java类运行的编译字节码)的老方法有什么不同。

    谢谢!

    编辑:非常有趣,谢谢!,我希望我能选择正确的答案:)

    4 回复  |  直到 16 年前
        1
  •  5
  •   torak    16 年前

    首先是免责声明,我对安卓一点也不熟悉。总之…

    我熟悉的JIT编译有两个应用程序。一种是将字节码转换为实际的机器指令。二是 Superoptimisation .

    JIT字节码编译加快了速度,因为字节码只被插入一次,而不是每次执行。这可能是你看到的那种优化。

    JIT超优化(它搜索实现程序逻辑的真正最佳指令集)有点深奥。这可能不是你所说的,尽管我读过报告,结果速度提高了100%-200%。

        2
  •  3
  •   Christopher Barber    16 年前

    虚拟机需要将编译后的字节代码转换为机器指令才能运行。以前,这是使用一个解释器完成的,这对于只调用一次的代码来说是很好的,但是对于反复调用的函数来说是次优的。

    当VM取代ASA JIT版本替换初始解释器版本时,Java VM看到了类似的加速。

        3
  •  2
  •   LukeN    16 年前

    JIT编译器知道它的系统,它可以使用Knownledge生成比字节码高效的代码,并且传言说它可以超越预编译的程序。

    这就是为什么它可以比传统的Java系统更快,其中的代码只运行在字节码中,Android也是如此。

        4
  •  1
  •   Mariano Kamp    16 年前

    除了将Java代码编译为本机代码外,也可以使用编译器完成,JIT进行优化,只能在运行时执行。

    JIT可以随着时间的推移监控应用程序的行为,并优化那些真正起作用的使用模式,即使这些模式的使用频率较低,也要牺牲代码执行路径中的其他分支。