加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

Java比C++慢?看了测 试结果,推翻了我的认知,不得不说JIT真的强

发布时间:2022-12-06 12:35:27 所属栏目:语言 来源:
导读:  编程语言根据其抽象级别进行分类。我们区分高级语言(Java,Python,JavaScript,C ++,Go),低级语言(汇编程序),最后是机器代码。

  每个高级语言代码(例如Java)都需要转换为机器本地代码才能执行。该翻

  编程语言根据其抽象级别进行分类。我们区分高级语言(Java,Python,JavaScript,C ++,Go),低级语言(汇编程序),最后是机器代码。
 
  每个高级语言代码(例如Java)都需要转换为机器本地代码才能执行。该翻译过程可以是编译或解释。但是,还有第三种选择。试图利用两种方法的组合。
 
  2. 编译与解释
 
  让我们开始研究编译和解释语言之间的一些差异。
 
  2.1 编译语言
 
  编译器将编译语言(C ++,Go)直接转换为机器码。
 
  在执行之前,它们需要明确的构建步骤。这就是为什么每次更改代码时都需要重新编译程序。
 
  编译语言往往比解释语言更快,更有效。但是,它们生成的机器码是特定于平台的。
 
  2.2 解释语言
 
  在解释语言(Python,JavaScript)中,没有构建步骤。相反,解释器在执行程序时对程序的源代码进行操作。
 
  曾经认为解释语言比编译语言要慢得多。但是,随着即时编译(JIT)的发展,性能差距正在缩小。JIT编译器在程序运行时将代码从解释语言转换为机器码。
 
  此外,我们可以在Windows,Linux或Mac等多个平台上执行解释后的语言代码。解释代码与特定类型的CPU体系结构没有关联。
 
  3. Write Once Run Anywhere
 
  Java和JVM在设计时考虑了可移植性。因此,当今大多数流行的平台都可以运行Java代码。
 
  这听起来似乎暗示着Java是一种纯解释性语言。但是,在执行之前,需要将Java源代码编译为字节码。字节码是JVM固有的一种特殊机器语言。JVM在运行时解释并执行此代码。
 
  它是JVM为支持Java的每个平台构建和定制的,并不是我们的程序或库。
 
  JVM也具有JIT编译器。这意味着JVM在运行时优化我们的代码,以获得与编译语言相似的性能优势。
 

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!