应用程序的 M1 mac 优化过程意味着什么?

San*_*o J 3 macos cpu cpu-architecture apple-m1

您知道现代 Mac 计算机中使用的基于 ARM 的 M1 芯片。在这些 Mac 上,某些软件通过称为(Discord、Steam)的层运行Rosetta,有些软件直接通过本机运行M1(Slack、IntelliJ),而有些软件实际上无法以任何方式运行(Virtual Box)。可以在此处找到持有该状态的大量列表。

只能运行的应用程序Rosetta尚未M1优化,它们的开发人员必须对其进行优化,这需要一些时间。但优化它意味着什么呢?流程是什么样的?我非常确定他们不会将整个应用程序代码重写为另一种语言(例如 Swift),因为 Jetbrains 能够M1非常快速地优化他们的应用程序。另一方面,Discord 尚未优化,Unity 游戏引擎也是如此(尽管它处于测试阶段)。

Ale*_*ica 5

归根结底,这只是意味着编译器的后端被配置为为程序发出 ARM64 指令,而不是(或除了)x86-64 指令。

这意味着某些 x86-64 特定功能指令不能再使用,除非使用等效的 ARM 指令。

不过,这通常不是什么大问题,因为大多数 macOS 软件通常是使用系统提供的框架在更高的抽象级别编写的。

例如,使用 CoreImage 操作图像可以让您从 CPU 和 GPU 的细节中抽象出来。在这种情况下,苹果会承担对其框架进行移植的繁重工作。作为应用程序开发人员,您所要做的就是选中“目标 ARM64”复选框。