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

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

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

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/biancheng/yuyan/2021/0601/8295.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部