All mandelbrot problem benchmarks

Current benchmark data was generated on Thu May 01 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 223ms 8.7ms 7.6MB 827ms 10ms clang 14.0.0-1ubuntu1.1
rust 9.rs 246ms 0.4ms 4.8MB 233ms 0ms rustc 1.88.0-nightly
zig 1.zig 247ms 0.5ms 4.1MB 240ms 0ms zig 0.14.0
c 1-mffi.c 264ms 0.7ms 6.6MB 813ms 0ms gcc 15.1.0
odin 1.odin 288ms 4.5ms 4.6MB 277ms 0ms odin 2024
rust 8.rs 292ms 2.2ms 4.9MB 283ms 0ms rustc 1.86.0
d 1.d 295ms 0.4ms 6.7MB 283ms 0ms ldc2 1.40.1
crystal 1.cr 314ms 1.1ms 9.3MB 300ms 0ms crystal 1.16.2
c 1-ffi.c 329ms 0.7ms 6.0MB 320ms 0ms zigcc 0.14.0
csharp 4.cs 331ms 1.8ms 37.2MB 310ms 10ms dotnet 9.0.203
c 1-mffi.c 331ms 2.6ms 6.0MB 323ms 0ms zigcc 0.14.0
nim 1.nim 387ms 1.0ms 4.8MB 380ms 0ms nim/clang 2.2.4
c 1-ffi.c 452ms 1.2ms 6.5MB 440ms 0ms clang 14.0.0-1ubuntu1.1
c 1-ffi.c 543ms 1.9ms 6.8MB 533ms 0ms gcc 15.1.0
csharp 2.cs 550ms 85ms 39.6MB 527ms 13ms dotnet 9.0.203
nim 1.nim 579ms 4.0ms 4.5MB 570ms 0ms nim 2.2.4
wasm 8.rs 822ms 2.9ms 20.8MB 807ms 0ms wasmtime 32.0.0
java 1b.java 1143ms 6.0ms 54.5MB 1230ms 27ms openjdk 23
java 1b.java 1166ms 5.0ms 54.4MB 1283ms 20ms openjdk 21
java 1b.java 1185ms 32ms 110.7MB 1397ms 40ms graal/jvm 17.0.8
java 1.java 1257ms 4.7ms 126.5MB 1383ms 47ms graal/jvm 17.0.8
java 1b.java 1288ms 8.7ms 51.3MB 1290ms 140ms openjdk/zgc 21
java 1a.java 1656ms 5.8ms 55.0MB 1757ms 23ms openjdk 21
java 1a.java 1660ms 5.5ms 56.7MB 1753ms 27ms openjdk 23
java 1a.java 1684ms 4.3ms 102.5MB 1790ms 40ms graal/jvm 17.0.8
java 1.java 1702ms 3.6ms 202.6MB 1780ms 37ms openjdk 21
java 1.java 1714ms 2.2ms 307.8MB 1770ms 57ms openjdk 23
java 1a.java 1779ms 6.2ms 52.0MB 1760ms 143ms openjdk/zgc 21
csharp 1.cs 2035ms 6.8ms 36.6MB 2010ms 10ms dotnet 9.0.203
d 1.d 2114ms 7.3ms 9.3MB 2103ms 0ms dmd 2.111.0
java 1.java 2363ms 9.5ms 848.7MB 1777ms 693ms openjdk/zgc 21
csharp 3.cs 2456ms 6.5ms 36.5MB 2430ms 10ms dotnet 9.0.203
csharp 3.cs 2525ms 0.7ms 16.3MB 2510ms 0ms dotnet/aot 9.0.203
go 1.go 2666ms 6.7ms 7.7MB 2657ms 0ms go 1.24.2
csharp 1.cs 3562ms 4.9ms 16.3MB 3547ms 0ms dotnet/aot 9.0.203
go 1.go 4072ms 18ms 3.4MB 4063ms 0ms tinygo 0.37.0
csharp 1.cs timeout 0.0ms 22.2MB 4987ms 0ms mono 6.12.0
java 2.java timeout 0.0ms 752.2MB 5260ms 123ms openjdk 21
java 2.java timeout 0.0ms 762.3MB 5257ms 143ms openjdk 23
java 2.java timeout 0.0ms 3447.8MB 3350ms 1987ms openjdk/zgc 21

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 12ms 0.0ms 1.1MB 10ms 0ms zig 0.14.0
rust 9.rs 13ms 0.2ms 1.9MB 10ms 0ms rustc 1.88.0-nightly
odin 1.odin 14ms 0.2ms 1.6MB 10ms 0ms odin 2024
rust 8.rs 14ms 0.2ms 2.0MB 10ms 0ms rustc 1.86.0
d 1.d 15ms 0.2ms 3.0MB 10ms 0ms ldc2 1.40.1
c 1-mffi.c 15ms 0.3ms 4.5MB 30ms 0ms clang 14.0.0-1ubuntu1.1
c 1-ffi.c 16ms 0.0ms 3.0MB 10ms 0ms zigcc 0.14.0
c 1-mffi.c 16ms 0.1ms 3.0MB 10ms 0ms zigcc 0.14.0
c 1-mffi.c 16ms 0.7ms 3.5MB 43ms 0ms gcc 15.1.0
crystal 1.cr 17ms 0.4ms 5.6MB 10ms 0ms crystal 1.16.2
nim 1.nim 19ms 0.5ms 1.9MB 10ms 0ms nim/clang 2.2.4
c 1-ffi.c 22ms 1.1ms 3.6MB 10ms 0ms clang 14.0.0-1ubuntu1.1
c 1-ffi.c 25ms 0.4ms 3.8MB 20ms 0ms gcc 15.1.0
nim 1.nim 26ms 0.6ms 1.6MB 20ms 0ms nim 2.2.4
wasm 8.rs 42ms 0.8ms 17.9MB 30ms 0ms wasmtime 32.0.0
csharp 4.cs 81ms 8.6ms 34.3MB 53ms 10ms dotnet 9.0.203
d 1.d 94ms 0.8ms 5.0MB 87ms 0ms dmd 2.111.0
csharp 3.cs 116ms 1.9ms 13.0MB 103ms 0ms dotnet/aot 9.0.203
go 1.go 117ms 2.6ms 3.6MB 110ms 0ms go 1.24.2
csharp 1.cs 135ms 0.8ms 33.9MB 113ms 10ms dotnet 9.0.203
csharp 2.cs 150ms 60ms 36.8MB 127ms 10ms dotnet 9.0.203
csharp 1.cs 156ms 1.3ms 13.0MB 140ms 0ms dotnet/aot 9.0.203
csharp 3.cs 166ms 5.6ms 33.8MB 143ms 7ms dotnet 9.0.203
java 1b-m.java 168ms 6.8ms 49.5MB 260ms 20ms openjdk 21
go 1.go 174ms 4.9ms 0.5MB 167ms 0ms tinygo 0.37.0
java 1b-m.java 177ms 12ms 51.3MB 273ms 23ms openjdk 23
java 1a-m.java 186ms 2.3ms 50.0MB 290ms 20ms openjdk 21
java 1a-m.java 191ms 1.6ms 52.5MB 297ms 20ms openjdk 23
java 1-m.java 192ms 2.7ms 87.1MB 267ms 33ms openjdk 23
java 1-m.java 192ms 2.2ms 81.5MB 267ms 30ms openjdk 21
java 1-m.java 196ms 8.5ms 111.8MB 303ms 40ms graal/jvm 17.0.8
java 1a-m.java 210ms 2.1ms 98.7MB 313ms 43ms graal/jvm 17.0.8
java 1b-m.java 229ms 10ms 101.9MB 393ms 37ms graal/jvm 17.0.8
java 1b.java 316ms 26ms 47.9MB 317ms 140ms openjdk/zgc 21
java 1a.java 321ms 3.6ms 48.8MB 293ms 143ms openjdk/zgc 21
java 1.java 338ms 8.4ms 114.4MB 263ms 160ms openjdk/zgc 21
java 2-m.java 558ms 6.3ms 636.9MB 840ms 93ms openjdk 21
csharp 1.cs 575ms 10ms 23.5MB 560ms 0ms mono 6.12.0
java 2-m.java 575ms 4.2ms 811.9MB 837ms 120ms openjdk 23
java 2.java 1616ms 60ms 1396.0MB 843ms 1073ms openjdk/zgc 21