上周,树莓派发布了用户期待已久的 64 位 Raspberry Pi OS,从理论上来说 64 位的操作系统能够更好地利用 64 位处理器所带来的优势(较新版本的树莓派已采用 64 位处理器)、可以支持 4GB 以上的内存(树莓派 4B 最高配备 8GB 内存),以及在处理多媒体内容时能够有更佳的表现。
虽然理论上是这么说,那么 32 位和 64 位在实际测试中表现如何呢?近日外媒 Phoronix 对两者进行了详细测试,让我们一起看看从 Raspberry Pi OS 32 位转换到 64 位后的测试数据和性能表现。

为了测试公平起见,消除因处理器或内存不同引起的结果差异,本次测试使用的是 Raspberry Pi 400,该设备的硬件配置如下:
- CPU:博通 BCM2711 四核 Cortex-A72 (ARM v8) 64-bit SoC @ 1.8GHz
- 内存:4GB LPDDR4-3200
- 存储:SanDisk 16GB
- 解码:H.265 (4K@60)、H.264 (1080P@60, 1080P@30)、OpenGL ES 3.0

本次测试使用的 Linux 内核版本为 5.10,测试中使用的软件包版本均相同,测试唯一的区别只是从最新的 Raspberry Pi OS 32 位切换到 64 位。
在首先进行的 WebP 图像编码测试中(分数越低越好,这是对 Google 的 libwebp 的测试,使用 cwebp 图像编码实用程序),无论是在默认编码设置下,还是在质量为 100 的编码设置下,64 位系统的编码速度比 32 位快 4.5% — 7% 左右,两者仅有较小的差距。

在接下来的 GraphicsMagick 测试中(分数越高越高,对 GraphicsMagick 及其 OpenMP 实现的测试),32 位和 64 位的测试成绩就有了比较明显的差别,其中在进行 HWB 色彩空间测试时两者差距最大,64 位相比 32 位快了约 47%,而在进行 Swirl 操作时也有约 32% 的性能差距。除此之外,在进行旋转、锐化和高斯噪声处理时,也有 17% — 28% 左右的性能差距。


在 FLAC 音频编码测试中(分数越低越好,计算示例 WAV 文件编码为 FLAC 格式所需的时间),64 位比 32 位也提升了约 17%;LAME MP3 编码测试中(分数越低越好,计算将 WAV 文件编码为 MP3 格式所需的时间),64 位提升了约 43%。


在前面的测试中也能看出,64 位相比 32 位在某些测试场景下有了 40% 以上的性能提升,而在 Stress-NG 测试中(分数越高越好,Stress-NG 是 Linux 压力测试工具,可以对 CPU、Memory、IO、磁盘进行测试),两者的性能差距更是进一步被放大,其中在 Vector Math 中 64 位的性能提升幅度达到了约 232%;在 Glibc C String Functions 测试中,也提升了约 196%。


除了多媒体编码和系统的压力测试以外,也专门对 Python 和 PHP 的性能进行了测试。其中在 PyBench 测试中(分数越低越好,PyBench 报告了不同函数的平均测试时间,提供了对 Python 在系统上的平均性能的估计),64 位相比 32 位提升了约 13%;而在 PHPBench 测试中(分数越高越好,PHPBench 执行大量测试,以便对 PHP 解释器的各个方面进行评估),64 位性能则是提升了约 54%。


虽然上述的测试结果已经表明在同等测试环境下,64 位操作系统的性能相比 32 位有了大幅提升,但这还不是所有测试环节中性能差距的最大体现。
在 Sysbench 测试中(分数越高越好,Sysbench 是一个基于 LuaJIT 的多线程基准测试工具,专门测试 CPU 和内存),64 位处理器 + 64 位操作系统的优势被最大化,64 位的性能提升幅度达到了惊人的 1380%。

我们在这里仅仅是从几十种不同的负载测试中挑出了一些具有代表性的测试,但纵观全部测试结果,将 Raspberry Pi OS 切换至 64 位版本后,其平均性能提高了约 48%。想要查看所有测试数据的用户可以访问 Phoronix 官网。
相比其他的 Linux 发行版,Raspberry Pi OS 直到现在才推出 64 位系统,确实是姗姗来迟。但从测试结果来看,64 位系统这么大的提升幅度让用户也没有白等。看到这里你应该找不到什么理由拒绝升级到 64 位系统了吧。