JIT(Just-In-Time)编译器

  • JIT编译器是JVM的核心。它对于程序性能的影响最大。
  • CPU只能执行汇编代码或者二进制代码,所有程序都需要被翻译成它们,然后才能被CPU执行。
  • C++以及Fortran这类编译型语言都会通过一个静态的编译器将程序编译成CPU相关的二进制代码。
  • PHP以及Perl这列语言则是解释型语言,只需要安装正确的解释器,它们就能运行在任何CPU之上。当程序被执行的时候,程序代码会被逐行解释并执行。
    ** 编译型语言的优缺点:**
  • 速度快:因为在编译的时候它们能够获取到更多的有关程序结构的信息,从而有机会对它们进行优化。
  • 适用性差:它们编译得到的二进制代码往往是CPU相关的,在需要适配多种CPU时,可能需要编译多次。
    ** 解释型语言的优缺点:**
  • 适应性强:只需要安装正确的解释器,程序在任何CPU上都能够被运行
  • 速度慢:因为程序需要被逐行翻译,导致速度变慢。同时因为缺乏编译这一过程,执行代码不能通过编译器进行优化。
    ** Java的做法是找到编译型语言和解释性语言的一个中间点:**
  • Java代码会被编译:被编译成Java字节码,而不是针对某种CPU的二进制代码。
  • Java代码会被解释:Java字节码需要被java程序解释执行,此时,Java字节码被翻译成CPU相关的二进制代码。
  • JIT编译器的作用:在程序运行期间,将Java字节码编译成平台相关的二进制代码。正因为此编译行为发生在程序运行期间,所以该编译器被称为Just-In-Time编译器。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这篇文章是我之前翻阅了不少的书籍以及从网络上收集的一些资料的整理,因此不免有一些不准确的地方,同时不同JDK版本的...
    高广超阅读 15,690评论 3 83
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • 本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入...
    小小不懂11阅读 3,442评论 2 30
  • textview从字面翻译就可以看出这是一个显示文本的基本控件,主要是在xml文件里定义属性用于完美展示 id:为...
    AndroidTech阅读 1,219评论 0 5
  • 加速测试的方法 这里所说的“速度”有两层含义。 其一,当然是测试运行所用的时间。我们这个小程序的测试已经开始出现慢...
    AQ王浩阅读 966评论 0 1