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

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

发布时间:2021-06-03 20:45:51 所属栏目:编程 来源:互联网
导读:1. 概述 编程语言根据其抽象级别进行分类。我们区分高级语言(Java,Python,JavaScript,C ++,Go),低级语言(汇编程序),最后是机器代码。 每个高级语言代码(例

编程语言根据其抽象级别进行分类。我们区分高级语言(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在运行时优化我们的代码,以获得与编译语言相似的性能优势。

(编辑:核心网)

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

    热点阅读