在只有 Intel 和 AMD 的年代,CPU 市场显得波澜不惊。直到一款带着“技术自主”光环的龙芯(LoongArch)处理器,出现在了 DuckDB 联合创始人的办公桌上。
为了满足好奇心,同时也为了给 DuckDB 安排一场在全新架构下的“极限测试”,DuckDB联合创始人便自掏腰包,花费约 500 欧元从速卖通(AliExpress)上购入了一台 MOREFINE M700S 迷你主机。
这台主机的核心,便是国产自研的龙芯处理器。面对价格数倍于它的苹果 M3 Max MacBook,这颗新星在数据库负载下的表现究竟如何?是能出奇制胜,还是会被无情“打脸”?本文将带你一探究竟,不仅有略显“复古”的系统体验,更有真实的 TPC-H 性能对决数据。测试数据本身颇具看点,而创始人最想吐槽的,或许并非性能本身。
下面的内容编译自 DuckDB 官方博客:https://duckdb.org/2026/01/06/duckdb-on-loongarch-morefine。
DuckDB on 龙芯 来了
TL;DR:我们最近测试了一台采用 LoongArch 架构的龙芯 CPU 设备。
并非每天都有新的 CPU 架构出现在办公桌上。我成长于 Intel 486 时代,经历了 AMD 在 2000 年发布 64 位 x86 扩展,之后直到 2020 年苹果发布基于 ARM 的 M1 芯片前,CPU 领域都鲜有重大变革。今天,我们终于迎来了期待已久的测试设备——MOREFINE M700S。

MOREFINE M700S产品页面截图,显示Loongson LS3A6000 CPU规格
M700S 搭载了龙芯处理器。这款处理器也被称为“龙芯架构”或“神芯处理器”,是中国自主研发的 CPU,其指令集基于 MIPS 架构。这是中国“中国制造2025”计划中实现技术自主的一环。鉴于当前的全球贸易形势,可以预见龙芯处理器在中国市场的渗透率可能会逐步提升。DuckDB 在中国已有相当多的用户,因此我们自然希望确保 DuckDB 能在龙芯平台上良好运行。
幸运的是,社区成员仅用两个极小的补丁就成功让 DuckDB 完成了编译。这激发了我们的兴趣。于是我们从速卖通购入了这台 M700S,它配备了龙芯 8 核 3A6000 CPU、16 GB 内存和 256 GB 固态硬盘。
设备启动后,除了风扇持续运转且噪音较大外,一切正常。系统是名为 Loongnix 的 Debian 变体,图形界面基于 KDE,并自带一个名为 “LBrowser” 的 Chromium 分支浏览器。默认 root 密码和用户 m700s 的密码均为 M700S。
总体而言,即便运行 apt upgrade 后,系统软件版本也显得有些陈旧:Linux 内核版本为 4.19(发布于 2018 年),GCC 版本为 8.3(发布于 2019 年)。这或许是企业级系统追求稳定性的体现,但确实与最新的开发环境存在差距。
借助社区提供的补丁,我们成功在 Loongnix 上编译了 DuckDB 1.4.3。过程中遇到一个小问题:CMake 文件 append_metadata.cmake 与系统自带的旧版本 CMake(3.13.4)不兼容。通过将该文件替换为空文件,我们绕过了此问题,最终完成了编译。编译 DuckDB 这类复杂的 C/C++ 项目,对工具链的完善度有一定要求。
编译完成后,我们运行了 DuckDB 的大型单元测试套件 make allunit,以验证其在龙芯 CPU 上的功能完整性,结果一切正常。
性能对比测试:TPC-H 基准
为了进行性能评估,我们沿用之前在树莓派上测试 DuckDB 的方法。我们在“缩放因子”(SF)为 100 和 300 的情况下,运行了完整的 22 个 TPC-H 查询,这分别对应约 25 GB 和 78 GB 的 DuckDB 数据库文件。
我们将测试结果与一台配备 M3 Max CPU 的 MacBook Pro 进行对比。为确保公平,两个平台上的 DuckDB 内存限制均设置为 14 GB。报告中的运行时间为“热运行”时间,即重新运行查询集并取第二次运行的结果。
以下是汇总结果。我们先来看总时间对比:
| SF |
System |
Geometric mean |
Sum |
| SF100 |
MacBook |
0.6 |
16.9 |
| SF100 |
MOREFINE |
6.1 |
192.8 |
| SF300 |
MacBook |
2.8 |
78.8 |
| SF300 |
MOREFINE |
27.3 |
791.6 |
数据显示,在这项 TPC-H 基准测试中,无论是运行时间的几何平均值还是总和,MacBook 的速度都大约是 MOREFINE 的 10 倍。
下面是各个查询的详细运行时间(单位:秒):
| Q |
SF100/MacBook |
SF100/MOREFINE |
SF300/MacBook |
SF300/MOREFINE |
| 1 |
1.247 |
7.363 |
4.528 |
26.475 |
| 2 |
0.117 |
1.058 |
0.474 |
4.101 |
| 3 |
0.697 |
8.563 |
2.759 |
32.432 |
| 4 |
0.570 |
7.348 |
2.331 |
27.185 |
| 5 |
0.631 |
8.498 |
3.217 |
34.462 |
| 6 |
0.180 |
1.236 |
1.395 |
13.225 |
| 7 |
0.620 |
7.702 |
3.119 |
37.411 |
| 8 |
0.640 |
5.593 |
3.611 |
29.914 |
| 9 |
1.906 |
30.560 |
6.670 |
99.884 |
| 10 |
0.923 |
11.755 |
4.036 |
40.412 |
| 11 |
0.102 |
1.037 |
0.709 |
4.444 |
| 12 |
0.535 |
6.422 |
2.918 |
31.501 |
| 13 |
1.847 |
21.185 |
6.394 |
74.081 |
| 14 |
0.408 |
5.616 |
3.240 |
26.613 |
| 15 |
0.252 |
2.652 |
1.906 |
17.454 |
| 16 |
0.273 |
3.108 |
0.879 |
11.480 |
| 17 |
0.805 |
5.184 |
4.655 |
28.469 |
| 18 |
1.538 |
15.492 |
7.619 |
71.845 |
| 19 |
0.779 |
9.143 |
4.379 |
39.111 |
| 20 |
0.441 |
4.993 |
3.234 |
25.967 |
| 21 |
1.996 |
23.231 |
9.503 |
96.452 |
| 22 |
0.441 |
5.036 |
1.237 |
18.709 |
测试总结与思考
在新硬件平台上运行 DuckDB 总是令人兴奋。DuckDB 的设计目标之一就是极高的可移植性,能够在各种硬件环境下提供卓越性能。因此,它在搭载新 CPU 的 MOREFINE 上顺利运行并不出奇。然而,在标准的 TPC-H 基准测试中,其性能与高端苹果芯片存在显著差距,后者速度领先约 10 倍。
当然,这背后存在巨大的优化空间。首先,龙芯平台上的 gcc 工具链可能远不如 x86/ARM 版本成熟,这方面的改进有望带来显著的性能提升。I/O 性能也未在本次测试中单独评估。但积极的一面是,龙芯 CPU 确实能够成功完成 TPC-H SF300 这样大规模的数据处理测试!
有人会说,MacBook Pro 比 500 欧元的 MOREFINE 贵得多。然而,配置相近(16GB+256GB)的 M4 Mac Mini 售价约为 700 欧元,价差并非天壤之别。它在性能上远超 MOREFINE,且运行安静。
从芯片、编译器到操作系统,构建一个成熟的高性能 计算生态 是一项庞大工程。让复杂软件(如数据库)在新架构上“跑得欢快”,确实还有很长的路要走。但方向正确就不怕路远,这更多是时间问题。本次测试也引发了技术社区对 不同架构下系统设计 与性能调优的思考,欢迎在 云栈社区 继续深入探讨国产全生态的崛起之路。