简体中文
English 简体中文 繁體中文
Methodox 首页

Mandelbrot 基准测试

Mandelbrot 基准测试横幅

设置

一个 2000 x 2000 的 Mandelbrot 集,最大迭代次数为 1000(正确的校验和为 689833081),在每种语言中都以相同的方式编写:整数运算、浮点运算、循环、分支、函数调用和内存写入。只有打印出与参考实现相同校验和的运行才计入结果。

结果(2026-10-24,暂定)

以下是来自基准测试仓库的当前结果,它们是暂定的:测量时机器上还运行着其他工作,因此每个数字都可能略有变动,最慢的程序变动最大。每个时间都是五轮(较慢的程序为三轮)的中位数,从启动进程测量到其退出,因此包含了运行时的启动时间。只能在本表内比较各行;仓库中保存了完整的方法、工具链、机器负载以及更早的记录。

排名(按时间) 平台 大小 运行时间(ms,中位数) 范围(ms) 峰值内存
1 Go 2.4 MB 1,335.84 1,294.75 - 5,219.69 37.48 MB
2 C++ 15 KB 1,368.68 1,347.09 - 1,490.50 19.08 MB
3 C# AoT 916 KB 1,406.34 1,382.91 - 1,619.13 22.30 MB
4 JavaScript (Node) 1 KB + 104 MB 1,441.62 1,425.10 - 1,529.44 53.57 MB
5 JavaScript (Web/Chrome) 3 KB 1,466.70(仅渲染) 1,375.70 - 1,525.80 N/A
6 Julia 1 KB + 1.1 GB 1,546.59 1,523.35 - 1,831.54 163.32 MB
7 C# (.NET 10) 12.3 MB 1,556.33 1,518.21 - 1,630.63 40.13 MB
8 Java (Temurin 17.0.11) 2 KB + 303 MB 2,225.39 1,703.51 - 2,905.58 56.14 MB
9 Pure 2 (Divooka Pure) 1 KB + 1.75 GB 2,526.64 2,432.84 - 2,683.12 202.84 MB
10 Haskell (GHC 9.10.3) 11.4 MB 2,831.05 2,818.44 - 2,921.94 43.38 MB
11 Divooka(AviatorBeta 程序) 77.2 MB 3,793.71 3,754.41 - 4,236.41 53.61 MB
12 Divooka(Stewer,编译) 7 KB + 1.75 GB 6,410.04 6,120.30 - 6,912.88 343.46 MB
13 Elixir (1.14.4, OTP 25) 2 KB + 387 MB 12,973.86 10,847.94 - 19,745.77 56.94 MB
14 Ruby (4.0.9) 1 KB + 304 MB 96,404.04 82,093.14 - 111,871.05 47.19 MB
15 Python (3.13.5) 1 KB + 151 MB 96,981.26 84,764.84 - 97,928.50 61.74 MB
16 Perl (5.42.3) 1 KB + 1.1 GB 206,107.18 201,216.36 - 224,165.19 200.11 MB
17 Prolog (SWI 9.0.4) 2 KB + 47 MB 664,090.70(11 分钟) 576,466.76 - 672,132.51 13.66 MB
18 GNU Octave (7.3.0) 1 KB + 2.2 GB (估计)5,074,024(85 分钟) 根据 100 x 100 时的 7,624 和 200 x 200 时的 45,319 推算 35.17 MB
19 Divooka(Stewer,解释) 7 KB + 1.75 GB (估计)13,517,210(3.8 小时) 根据 100 x 100 时的 49,078 和 200 x 200 时的 149,285 推算 205.57 MB

说明:

  • 简而言之,构建为独立程序(AviatorBeta)的 Divooka 文档运行约需 3.8 秒;由 Stewer 在每次运行时编译,约需 6.4 秒;而在逐节点解释器中(即编辑器的 Interpreted 运行所用的方式),估计需要 3.8 小时。这一估计值是根据两次较小规模的运行推算的,因为完整规模太慢,无法等待其完成。
  • “Divooka(Stewer,编译)”在每次运行时都会编译文档,这是它与 AviatorBeta 程序之间差距的主要来源。Divooka 的文档在 Divooka Compute 文件夹(1.75 GB,包含一切)中运行,而 AviatorBeta 程序是将文档构建成的自包含程序,与 Divooka Compute 的 Publish 所构建的程序相同。
  • Pure 2 将 C# 版本作为脚本运行,在运行开始时由 Roslyn 在 Divooka Pure 的进程内编译。
  • 本页面的早期版本显示 Divooka 估计需要 95.8 小时。那是针对旧版编辑器解释器的估计,取自较早的一次记录,采用的方法也不同,现已被上述数字取代。
  • 浏览器在预热之后为自身的渲染计时,因此 JavaScript (Web) 无法与其他行进行比较。

较早的结果,仅供参考

仓库中较早的记录采用了不同的方法,其中还包括一些 AI 模型,作为大众可能感兴趣的结果;它们不在上表中。在这些记录中,ChatGPT (5.3 Instant) 用时 26,320 ms(26.32 秒),Kimi (2.6 Instant) 用时 340,330 ms,而 Grok (Fast) 和 Gemini (Fast) 失败。仓库中注明 ChatGPT 的输出并不可靠。

参考资料

  • 基准测试仓库:完整的方法、工具链、光线追踪器基准测试、SteelPython 结果以及所有较早的记录。