All mandelbrot problem benchmarks

Current benchmark data was generated on Mon Jun 23 2025, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][4 cores] AMD EPYC 7763 64-Core Processor (Model 1)

* -m in a file name stands for multi-threading or multi-processing

* -i in a file name stands for direct intrinsics usage. (Usage of simd intrinsics via libraries is not counted)

* -ffi in a file name stands for non-stdlib FFI usage

* (You may find time < time(user) + time(sys) for some non-parallelized programs, the overhead is from GC or JIT compiler, which are allowed to take advantage of multi-cores as that's more close to real-world scenarios.)

mandelbrot

Input: 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 1-mffi.c 232ms 17ms 7.6MB 860ms 10ms clang 14.0.0-1ubuntu1.1
zig 1.zig 248ms 0.9ms 4.1MB 240ms 0ms zig 0.14.1
rust 9.rs 256ms 17ms 4.8MB 250ms 0ms rustc 1.89.0-nightly
c 1-mffi.c 269ms 7.4ms 6.5MB 820ms 0ms gcc 15.1.0
odin 1.odin 288ms 4.8ms 4.6MB 280ms 0ms odin 2024
rust 8.rs 293ms 1.7ms 4.9MB 283ms 0ms rustc 1.87.0
crystal 1.cr 316ms 2.7ms 9.3MB 303ms 0ms crystal 1.16.3
c 1-mffi.c 330ms 1.2ms 6.0MB 320ms 0ms zigcc 0.14.1
c 1-ffi.c 330ms 0.7ms 6.0MB 320ms 0ms zigcc 0.14.1
csharp 4.cs 348ms 6.4ms 37.4MB 323ms 10ms dotnet 9.0.301
d 1.d 368ms 0.4ms 7.6MB 360ms 0ms ldc2 1.41.0
nim 1.nim 389ms 0.9ms 4.8MB 380ms 0ms nim/clang 2.2.4
c 1-ffi.c 452ms 1.7ms 6.7MB 440ms 0ms clang 14.0.0-1ubuntu1.1
c 1-ffi.c 544ms 3.5ms 6.8MB 530ms 0ms gcc 15.1.0
nim 1.nim 577ms 4.1ms 4.5MB 563ms 0ms nim 2.2.4
csharp 2.cs 587ms 80ms 39.9MB 557ms 20ms dotnet 9.0.301
wasm 8.rs 832ms 1.4ms 21.1MB 820ms 0ms wasmtime 34.0.0
java 1b.java 1149ms 2.5ms 54.2MB 1243ms 27ms openjdk 21
java 1b.java 1154ms 6.0ms 54.9MB 1253ms 20ms openjdk 23
java 1b.java 1185ms 18ms 109.7MB 1407ms 43ms graal/jvm 17.0.8
java 1.java 1254ms 6.4ms 136.5MB 1370ms 47ms graal/jvm 17.0.8
java 1b.java 1283ms 13ms 51.4MB 1273ms 147ms openjdk/zgc 21
java 1a.java 1656ms 0.6ms 55.1MB 1753ms 17ms openjdk 21
java 1a.java 1663ms 12ms 56.2MB 1757ms 23ms openjdk 23
java 1a.java 1690ms 12ms 102.1MB 1797ms 50ms graal/jvm 17.0.8
java 1.java 1703ms 2.8ms 202.6MB 1777ms 37ms openjdk 21
java 1.java 1717ms 7.6ms 323.7MB 1773ms 57ms openjdk 23
java 1a.java 1784ms 11ms 51.7MB 1763ms 143ms openjdk/zgc 21
csharp 1.cs 2042ms 8.0ms 36.5MB 2013ms 10ms dotnet 9.0.301
d 1.d 2121ms 34ms 9.4MB 2110ms 0ms dmd 2.111.0
csharp 3.cs 2350ms 4.8ms 16.4MB 2337ms 0ms dotnet/aot 9.0.301
java 1.java 2360ms 6.6ms 855.3MB 1810ms 657ms openjdk/zgc 21
csharp 3.cs 2483ms 55ms 36.5MB 2457ms 10ms dotnet 9.0.301
go 1.go 3227ms 6.6ms 7.7MB 3220ms 0ms go 1.24.4
go 1.go 3605ms 41ms 3.3MB 3593ms 0ms tinygo 0.38.0
csharp 1.cs 3995ms 103ms 16.5MB 3980ms 0ms dotnet/aot 9.0.301
csharp 1.cs timeout 0.0ms 24.2MB 4987ms 0ms mono 6.12.0
java 2.java timeout 0.0ms 676.0MB 5323ms 107ms openjdk 21
java 2.java timeout 0.0ms 768.5MB 5283ms 123ms openjdk 23
java 2.java timeout 0.0ms 3329.3MB 3447ms 1910ms openjdk/zgc 21

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 9.rs 12ms 0.5ms 2.0MB 0ms 0ms rustc 1.89.0-nightly
zig 1.zig 13ms 0.1ms 1.1MB 10ms 0ms zig 0.14.1
odin 1.odin 14ms 0.2ms 1.6MB 10ms 0ms odin 2024
rust 8.rs 14ms 0.1ms 2.0MB 10ms 0ms rustc 1.87.0
c 1-mffi.c 15ms 1.3ms 4.8MB 33ms 0ms clang 14.0.0-1ubuntu1.1
c 1-mffi.c 17ms 0.1ms 3.0MB 10ms 0ms zigcc 0.14.1
c 1-ffi.c 17ms 0.3ms 3.0MB 10ms 0ms zigcc 0.14.1
crystal 1.cr 17ms 0.6ms 6.1MB 10ms 0ms crystal 1.16.3
d 1.d 18ms 0.2ms 3.1MB 10ms 0ms ldc2 1.41.0
c 1-mffi.c 19ms 1.7ms 3.8MB 47ms 0ms gcc 15.1.0
nim 1.nim 19ms 0.7ms 1.9MB 10ms 0ms nim/clang 2.2.4
c 1-ffi.c 22ms 0.3ms 3.6MB 10ms 0ms clang 14.0.0-1ubuntu1.1
nim 1.nim 26ms 0.4ms 1.6MB 20ms 0ms nim 2.2.4
c 1-ffi.c 28ms 3.7ms 3.6MB 20ms 0ms gcc 15.1.0
wasm 8.rs 44ms 1.0ms 18.2MB 30ms 0ms wasmtime 34.0.0
csharp 4.cs 81ms 1.6ms 34.4MB 60ms 10ms dotnet 9.0.301
d 1.d 92ms 2.7ms 4.6MB 83ms 0ms dmd 2.111.0
csharp 3.cs 107ms 1.4ms 13.5MB 93ms 0ms dotnet/aot 9.0.301
csharp 2.cs 115ms 4.6ms 36.9MB 93ms 10ms dotnet 9.0.301
go 1.go 137ms 3.0ms 3.6MB 130ms 0ms go 1.24.4
csharp 1.cs 142ms 1.0ms 33.6MB 123ms 10ms dotnet 9.0.301
go 1.go 152ms 4.4ms 0.4MB 143ms 0ms tinygo 0.38.0
csharp 1.cs 176ms 5.4ms 13.5MB 160ms 0ms dotnet/aot 9.0.301
csharp 3.cs 176ms 9.3ms 34.0MB 150ms 13ms dotnet 9.0.301
java 1b-m.java 179ms 14ms 49.5MB 280ms 23ms openjdk 21
java 1b-m.java 183ms 9.7ms 51.2MB 290ms 20ms openjdk 23
java 1a-m.java 192ms 8.1ms 50.0MB 293ms 20ms openjdk 21
java 1a-m.java 192ms 3.0ms 52.4MB 300ms 20ms openjdk 23
java 1-m.java 192ms 3.2ms 81.7MB 263ms 27ms openjdk 21
java 1-m.java 197ms 1.2ms 112.1MB 303ms 43ms graal/jvm 17.0.8
java 1-m.java 198ms 7.3ms 87.1MB 270ms 30ms openjdk 23
java 1a-m.java 208ms 7.2ms 98.8MB 310ms 43ms graal/jvm 17.0.8
java 1b-m.java 226ms 20ms 102.0MB 373ms 43ms graal/jvm 17.0.8
java 1b.java 313ms 13ms 47.8MB 310ms 140ms openjdk/zgc 21
java 1a.java 317ms 6.4ms 49.5MB 293ms 143ms openjdk/zgc 21
java 1.java 331ms 4.5ms 114.6MB 260ms 167ms openjdk/zgc 21
java 2-m.java 563ms 7.9ms 647.7MB 857ms 97ms openjdk 21
java 2-m.java 569ms 9.9ms 723.6MB 850ms 103ms openjdk 23
csharp 1.cs 573ms 5.4ms 23.8MB 557ms 0ms mono 6.12.0
java 2.java 1600ms 3.2ms 1341.4MB 867ms 1043ms openjdk/zgc 21