BR 技术头条 技术链接、资讯与社区分享流
dr droidyue.com / 2015-10-08 12:48 / by @技术小黑屋

你的Java代码对JIT编译友好么?

赞过的人

@技术小黑屋

讨论 · 1 条

@技术头条 2015-10-08 14:22

摘要

在JVM中,即时编译器(以下简称JIT)是很重要的一部分,可以帮助应用大幅度提升执行效率。但是很多程序却并不能很好地利用JIT的高性能优化能力。本文中,我们将通过研究一些简单的例子找出程序代码对JIT不友好的问题。

JIT编译器是Java虚拟机(以下简称JVM)中效率最高并且最重要的组成部分之一。但是很多的程序并没有充分利用JIT的高性能优化能力,很多开发者甚至也并不清楚他们的程序有效利用JIT的程度。

在本文中,我们将介绍一些简单的方法来验证你的程序是否对JIT友好。这里我们并不打算覆盖诸如JIT编译器工作原理这些细节。只是提供一些简单基础的检测和方法来帮助你的代码对JIT友好,进而得到优化。

JIT编译的关键一点就是JVM会自动地监控正在被解释器执行的方法。一旦某个方法被视为频繁调用,这个方法就会被标记,进而编译成本地机器指令。这些频繁执行的方法的编译由后台的一个JVM线程来完成。在编译完成之前,JVM会执行这个方法的解释执行版本。一旦该方法编译完成,JVM会使用将方法调度表中该方法的解释的版本替换成编译后的版本。

发表评论