Swift Package Index 标志。Swift Package Index

追踪 Swift 6 严格并发检查对数据竞争安全性的采用情况。有多少包已为 Swift 6 做好准备

M1 Pro 和 M1 Max Xcode 构建和测试基准评测


一位拥有优秀项目的开发者渴望快速编译,这已成为普遍真理。正如简·奥斯汀大约 200 年前首次观察到的那样,今天仍然如此,幸运的开发者们正在接收新的 M1 机器。

在过去一周,您可能已经在各种网站上看到了基准评测,但是这些机器在实际的 Xcode 项目中表现如何呢?

Swift Package Index 是一个相当规模的开源项目,是评估新芯片的一个很好的测试,因此我们创建了一个基准测试工具,以提供一些真实世界的结果。

测试

我们正在测试两个性能方面:构建项目(全新构建)和运行测试。这些任务可能看起来相似,但它们以截然不同的方式对机器施加压力。全新构建通常会利用所有可用的核心,而此项目的测试使用在同一机器上运行的 Docker 化数据库,并且不是高度多线程的。

首先,我们知道你们都想看什么。结果!

A table of build benchmarks showing a dramatic reduction of build times from Intel MacBook Pro machines through to M1-based machinesA chart showing test benchmark results increasing steadily from the fastest M1 Max machine to the slowest Intel-based machineA chart showing test benchmark results increasing from one set of times for the M1-based machines to another set of resuklts for Intel-based machines

总的来说,令人瞩目的是,在苹果推出新款 MacBook Pro 之前,M1 MacBook Air 已经拥有最佳性能,但 M1 Pro 和 Max 芯片更进一步。它们在 M1 Air 的最佳结果 47 秒的基础上有所改进,构建时间不到 31 秒。那些额外的核心很重要,而大约 35% 的改进与您的预期一致,从 4+4 性能/效率核心设置变为 8+2 配置。

如果您正在考虑从 Intel 机器升级到 M1 Pro 或 Max,您将看到构建时间的显着减少。我们已经很久没有看到同级别机器的性能提升 2 倍了,但最好的 Intel 构建时间是 60 秒,而上面提到的 M1 Max 是 31 秒。这真是太了不起了。

运行测试时,结果不那么引人注目。M1 Max 的额外核心没有太大帮助,普通 M1 和 Pro/Max 之间的最佳时间差异微不足道。M1 MacBook Air 上略低于 27 秒,MacBook Pro 上略低于 26 秒。

M1 Pro vs M1 Max、32Gb vs 64Gb 和 8 核 vs 10 核

您可能已经注意到,在 M1 Pro 和 M1 Max 之间切换时,基准评测没有差异。GPU 不用于编译或这些测试,因此这是完全合理的,但值得一提。还值得注意的是,我们没有看到 32Gb 的 M1 Max 和 64Gb 的 M1 Max 之间有任何差异,构建上的 0.2 秒差异和测试上的 0.6 秒差异都在误差范围内。

M1 Pro 8 核和 M1 Pro 10 核机器之间确实存在明显的差异,10 核机器在构建时速度快约 15%。这非常显着,但与您预期从减少两个性能核心获得的结果一致。如上所述,我们忽略了这台机器的测试基准评测结果,因为这台机器的基准评测环境可能存在问题。

有很多理由购买配备 Max 芯片和 64Gb 内存的机器,但更快地编译代码不是其中之一!

M1 MacBook Air 散热

如果说 MacBook Air 有一个缺点,那就是它对温暖环境的敏感性。机器没有风扇对于保证静音来说非常出色,但在温暖的天气、阳光直射下或长时间对 CPU 施压时,会导致明显的减速。

您甚至可以通过观察 M1 MacBook Air 的构建基准评测略微向上的斜率来看到一点效果。

A chart showing just the build benchmarks for the M1-based MacBook Air

在这个基准评测运行的 15 分钟内,机器摸起来相当温暖,图表显示它开始有点降频了。

结论

如果您正在使用 Intel 机器,即使是苹果有史以来制造的最快的机器,看起来您也可以期望您的构建速度至少快两倍。再加上更大更好的屏幕、端口和其他细微的改进,这感觉像是我们至少十年来看到的最好的笔记本电脑升级。

如果您使用的是 M1 机器,则性能提升不那么引人注目,因为这些新芯片上的单个核心具有几乎相同的性能。但是,由于核心数量增加和性能核心的百分比更高,您仍然会看到一些改进。

总而言之,值得记住一件事,特别是如果您的预算比较紧张。配备 64Gb 内存的 M1 Max MacBook Pro 比我们测试过的最快的 Intel 机器快 100%(30.9 秒 vs 60 秒),而 M1 MacBook Air 比它快 30%。然而,这里测试的 M1 Max MacBook Pro 的售价约为 4,000 美元,而这里测试的 M1 MacBook Air 的售价约为 1,600 美元。性能与价格不成线性比例。

曾经有一段时间,如果您向刚入门的开发者推荐低端 MacBook,您会知道它足够用,但绝不会很出色。这种情况已不复存在,即使是最低端的 M1 机器也将具有与最高端笔记本电脑相当的性能。

您应该买什么?

如果您的预算少于 2,500 美元,请购买 M1 MacBook Air(而不是 13 英寸 Pro。MacBook Air 在这里是划算的!)。如果您的预算超过 2,500 美元,那么请购买 10 核 M1 Pro。

感谢

感谢 Christian WeinbergerToby HerbertGreg SpiersCameron Cooke 花时间运行了涵盖我们没有提供的配置的基准评测!

此外,如果您想更仔细地查看结果,此帖子中引用的所有原始数字都可供下载


关于此博客

Swift Package Index 是 Swift 包的搜索引擎和元数据索引。我们的主要目标是帮助您更好地决定您在应用程序和项目中包含的依赖项。如果您是新来的用户,最好的入门方法是搜索包