首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么苹果硅英特尔翻译的参考计数比英特尔快?

为什么苹果硅英特尔翻译的参考计数比英特尔快?
EN

Software Engineering用户
提问于 2020-11-14 23:33:59
回答 2查看 667关注 0票数 1

我找不到确切的推文,但苹果工程师表示,英特尔x86 翻译的保留和发布操作要比标准英特尔x86快。

EN

回答 2

Software Engineering用户

发布于 2020-11-15 08:34:28

Rosetta 2采用了动态优化的实时编译,例如甲骨文HotSpot JVM (以及大多数其他J9 / Eclipse )、微软.NET CLR、所有主流ECMAScript实现(GraalJS、V8、SpiderMonkey、JavaScriptCore)、PyPy、GraalPython、IronPython和Jython实现、Rubinius、IronRuby、JRuby、TruffleRuby和YARV实现等等。

由于动态优化器可以简单地检查当前的程序状态并观察程序的行为,因此不可能进行静态分析,例如停止问题的不可判定性或Rice定理,因此Rosetta 2动态优化器可以执行原始Swift或Objective编译器无法执行的优化。因此,对于某些类型的操作来说,代码可能更优化,因而速度更快,这并不令人惊讶。

你可能可以通过在英特尔Mac上运行从AMD64到AMD64编译的Rosetta 2的修改版本,或者在Apple上运行从AArm64编译到AArm64的修改版本,或者通过将Swift和Objective从提前编译的实现更改为JIT编译的实现来实现同样的目标。

动态语言社区(特别是Smalltalk和Lisp )早就知道,带有动态、推测和自适应优化的JIT编译可以产生很大的性能效益。(例如,实际上只是一个修改的Smalltalk,J9是由IBM的Smalltalk团队在Smalltalk VM的基础上构建的,V8是基于Smalltalk的(实际上与相同))。

但是在20世纪90年代末,知识也首次在C、C++和组装社区以及CPU社区中传播。英特尔和惠普正在研发一种名为IA-64的新CPU架构,这将取代惠普的PA体系结构以及英特尔的IA-32体系结构(至少在服务器和工作站上)。CPU总线主要与PA兼容,因此它可以作为惠普大型机的插入式替代,但当然,ISA是完全不同的。

因此,为了使客户从PA顺利过渡到IA-64,惠普开发了一个基于JIT编译的动态二进制翻译器,并进行了动态优化。他们想对这个翻译系统进行基准测试,但目前还没有任何IA-64芯片。然而,他们意识到,如果他们为翻译器构建了一个parse后端,他们仍然可以对其进行基准测试,因为它仍然会做同样的工作:解析parse二进制文件,分析它,优化,然后生成优化的机器代码,唯一的区别是生成的机器代码也是parse,而不是IA-64。

事实上,由于前端和后端是相同的,所以它们可以直接比较在PA-RISC中本地运行的代码和在完全相同的系统上在翻译器中运行的代码,这将使他们能够准确地测量翻译器的开销和速度。所以他们对此进行了测量,发现经济放缓是…造成的否定!换句话说,这是一种加速。

这是著名的迪纳摩项目.

因此,简而言之:动态优化可以执行静态优化无法执行的优化,因此至少可以相信该语句实际上是正确的。

票数 7
EN

Software Engineering用户

发布于 2020-11-15 11:08:17

首先,M1处理器的速度似乎明显高于等效的Intel处理器,因此,在将Intel转换为ARM代码之后,release /Release将会运行得更快,除非翻译的代码更糟糕。

但这两种手术都被大量使用。苹果公司已经为他们编写了代码,所以他们很有可能不会使用通用翻译,但译者会识别代码,并将其翻译成最优的ARM代码。

在其他情况下也可能是如此;如果您的代码调用由Apple编写的低级代码,则该代码可能不会被翻译,而是直接替换为等效的优化ARM代码。如果你看看苹果从ARM处理器和英特尔处理器的设备中赚了多少钱,现有的ARM代码可能会比现有的英特尔代码更好。

很多库都是操作系统本身的一部分,比如标准C、C++、Objective和Swift库,所以它们根本不会被翻译,但是将使用原始的ARM库。

PS。今天,一些基准测试结果已经发布,将运行模拟x86代码的x86处理器与英特尔Mac进行比较-- M1处理器在单线程性能上优于任何基于英特尔的Mac。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/418983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档