繁體中文
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 結果以及所有較早的記錄。