栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么字节码可能比本机代码运行得更快?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么字节码可能比本机代码运行得更快?

James Gosling在编程大师中解释了以下内容:

詹姆斯 :好的。这些天,我们几乎总是在击败真正优秀的C和C
++编译器。当使用动态编译器时,当编译器在最后一刻正确运行时,您将获得两个好处。一是您确切知道要运行的芯片组。人们多次编译一段C代码时,必须将其编译为在通用x86架构上运行。您获得的二进制文件中几乎没有一个经过特别优化。您下载了Mozilla的最新副本,它几乎可以在任何英特尔架构CPU上运行。几乎有一个Linux二进制文件。它非常通用,并且是用GCC编译的,而GCC并不是很好的C编译器。

当HotSpot运行时,它确切知道您正在运行的芯片组。它确切知道缓存的工作方式。它确切知道内存层次结构是如何工作的。它确切地知道所有管线互锁在CPU中的工作方式。它知道该芯片具有哪些指令集扩展。它针对您正在使用的机器进行了优化。然后另一半是它实际上在运行时看到了该应用程序。它能够拥有知道哪些事情很重要的统计信息。它能够内联C编译器无法执行的操作。内联到Java世界中的东西真是太神奇了。然后,您可以确定存储管理与现代垃圾收集器一起工作的方式。使用现代垃圾收集器,存储分配非常快。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/516593.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号