All mandelbrot problem benchmarks

Current benchmark data was generated on Wed Jan 22 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 18ms 7.6MB 810ms 20ms clang 14.0.0-1ubuntu1.1
zig 1.zig 247ms 0.8ms 4.2MB 237ms 0ms zig 0.13.0
rust 9.rs 248ms 0.6ms 4.9MB 237ms 0ms rustc 1.86.0-nightly
odin 1.odin 287ms 4.0ms 4.6MB 277ms 0ms odin 2024
d 1.d 293ms 0.9ms 7.5MB 280ms 0ms ldc2 1.40.0
c 1-mffi.c 297ms 47ms 6.5MB 860ms 3ms gcc 14.2.0
crystal 1.cr 314ms 3.9ms 9.2MB 303ms 0ms crystal 1.15.0
rust 8.rs 324ms 31ms 4.9MB 313ms 0ms rustc 1.84.0
nim 1.nim 387ms 2.3ms 4.8MB 373ms 0ms nim/clang 2.2.0
c 1-ffi.c 433ms 2.9ms 6.0MB 420ms 0ms zigcc 0.13.0
c 1-mffi.c 434ms 2.5ms 6.0MB 420ms 0ms zigcc 0.13.0
c 1-ffi.c 458ms 1.7ms 6.6MB 447ms 0ms clang 14.0.0-1ubuntu1.1
c 1-ffi.c 541ms 1.6ms 6.7MB 530ms 0ms gcc 14.2.0
nim 1.nim 577ms 1.3ms 4.7MB 567ms 0ms nim 2.2.0
wasm 8.rs 816ms 2.6ms 22.5MB 800ms 0ms wasmtime 29.0.1
csharp 2.cs 1093ms 64ms 46.0MB 1057ms 20ms dotnet 9.0.102
java 1b.java 1158ms 25ms 55.3MB 1263ms 20ms openjdk 23
java 1b.java 1184ms 8.7ms 54.4MB 1307ms 23ms openjdk 21
java 1b.java 1214ms 57ms 116.0MB 1463ms 43ms graal/jvm 17.0.8
java 1.java 1260ms 13ms 130.3MB 1363ms 53ms graal/jvm 17.0.8
java 1b.java 1264ms 5.0ms 51.2MB 1243ms 133ms openjdk/zgc 21
java 1a.java 1659ms 11ms 54.9MB 1757ms 20ms openjdk 21
java 1a.java 1661ms 3.6ms 56.4MB 1767ms 20ms openjdk 23
java 1a.java 1673ms 2.5ms 108.3MB 1783ms 33ms graal/jvm 17.0.8
java 1.java 1702ms 9.3ms 309.5MB 1767ms 47ms openjdk 23
java 1.java 1705ms 5.0ms 202.5MB 1757ms 60ms openjdk 21
java 1a.java 1773ms 9.1ms 51.9MB 1763ms 127ms openjdk/zgc 21
csharp 1.cs 2043ms 10ms 42.9MB 2010ms 20ms dotnet 9.0.102
d 1.d 2106ms 6.1ms 9.3MB 2087ms 3ms dmd 2.109.1
csharp 3.cs 2350ms 7.8ms 22.1MB 2337ms 3ms dotnet/aot 9.0.102
java 1.java 2359ms 9.8ms 858.7MB 1787ms 673ms openjdk/zgc 21
go 1.go 2671ms 4.8ms 7.4MB 2657ms 0ms go 1.23.5
csharp 3.cs 2712ms 331ms 42.9MB 2683ms 10ms dotnet 9.0.102
go 1.go 3735ms 8.9ms 5.4MB 3727ms 0ms tinygo 0.35.0
csharp 1.cs 3946ms 98ms 22.2MB 3927ms 3ms dotnet/aot 9.0.102
csharp 1.cs timeout 0.0ms 24.4MB 4983ms 3ms mono 6.12.0
java 2.java timeout 0.0ms 658.7MB 5300ms 130ms openjdk 21
java 2.java timeout 0.0ms 778.5MB 5293ms 133ms openjdk 23
java 2.java timeout 0.0ms 3309.3MB 3390ms 1953ms openjdk/zgc 21

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 12ms 0.2ms 1.3MB 0ms 0ms zig 0.13.0
rust 9.rs 13ms 0.4ms 2.0MB 0ms 0ms rustc 1.86.0-nightly
odin 1.odin 14ms 0.2ms 1.6MB 10ms 0ms odin 2024
d 1.d 15ms 0.1ms 3.0MB 10ms 0ms ldc2 1.40.0
rust 8.rs 15ms 0.3ms 2.0MB 0ms 0ms rustc 1.84.0
c 1-mffi.c 16ms 1.8ms 8.5MB 27ms 0ms clang 14.0.0-1ubuntu1.1
crystal 1.cr 18ms 0.3ms 5.8MB 10ms 0ms crystal 1.15.0
nim 1.nim 18ms 0.5ms 1.9MB 10ms 0ms nim/clang 2.2.0
c 1-ffi.c 20ms 0.1ms 3.0MB 10ms 0ms zigcc 0.13.0
c 1-mffi.c 21ms 1.3ms 3.0MB 10ms 0ms zigcc 0.13.0
c 1-mffi.c 22ms 0.4ms 5.6MB 53ms 0ms gcc 14.2.0
c 1-ffi.c 22ms 0.5ms 3.6MB 10ms 0ms clang 14.0.0-1ubuntu1.1
c 1-ffi.c 25ms 0.1ms 3.8MB 13ms 0ms gcc 14.2.0
nim 1.nim 27ms 1.3ms 1.6MB 20ms 0ms nim 2.2.0
wasm 8.rs 42ms 0.3ms 19.5MB 30ms 0ms wasmtime 29.0.1
d 1.d 91ms 1.5ms 4.8MB 80ms 0ms dmd 2.109.1
csharp 3.cs 111ms 1.1ms 18.9MB 93ms 3ms dotnet/aot 9.0.102
go 1.go 115ms 3.6ms 3.4MB 110ms 0ms go 1.23.5
csharp 2.cs 132ms 0.7ms 42.9MB 113ms 7ms dotnet 9.0.102
csharp 1.cs 139ms 1.8ms 40.0MB 120ms 3ms dotnet 9.0.102
go 1.go 157ms 2.0ms 0.3MB 150ms 0ms tinygo 0.35.0
csharp 3.cs 169ms 5.2ms 40.2MB 143ms 7ms dotnet 9.0.102
csharp 1.cs 173ms 2.3ms 19.2MB 160ms 0ms dotnet/aot 9.0.102
java 1b-m.java 183ms 13ms 52.5MB 287ms 23ms openjdk 23
java 1a-m.java 190ms 1.0ms 50.0MB 293ms 20ms openjdk 21
java 1-m.java 190ms 6.7ms 81.9MB 270ms 17ms openjdk 21
java 1b-m.java 190ms 20ms 49.8MB 300ms 17ms openjdk 21
java 1a-m.java 191ms 2.5ms 52.5MB 283ms 27ms openjdk 23
java 1-m.java 194ms 8.6ms 115.9MB 283ms 53ms graal/jvm 17.0.8
java 1-m.java 197ms 8.8ms 87.2MB 270ms 30ms openjdk 23
java 1a-m.java 214ms 15ms 104.8MB 317ms 47ms graal/jvm 17.0.8
java 1b-m.java 251ms 56ms 106.5MB 433ms 43ms graal/jvm 17.0.8
java 1b.java 304ms 3.3ms 49.7MB 293ms 140ms openjdk/zgc 21
java 1a.java 309ms 4.4ms 50.2MB 283ms 143ms openjdk/zgc 21
java 1.java 332ms 0.9ms 114.4MB 263ms 167ms openjdk/zgc 21
csharp 1.cs 566ms 2.5ms 23.4MB 547ms 3ms mono 6.12.0
java 2-m.java 569ms 11ms 709.6MB 877ms 83ms openjdk 23
java 2-m.java 593ms 40ms 612.9MB 850ms 120ms openjdk 21
java 2.java 1593ms 14ms 1354.8MB 850ms 1043ms openjdk/zgc 21