Java比C++慢?看了测试功效,颠覆了我的认知,不得不说JIT真的强
编程说话按照其抽象级别举办分类。我们区分高级说话(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在运行时优化我们的代码,以得到与编译说话相似的机能上风。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |