All mandelbrot problem benchmarks

Current benchmark data was generated on Sun Dec 01 2024, 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
zig 1.zig 246ms 0.8ms 4.2MB 237ms 0ms zig 0.13.0
rust 9.rs 253ms 8.3ms 4.8MB 240ms 0ms rustc 1.85.0-nightly
odin 1.odin 286ms 4.0ms 4.6MB 273ms 0ms odin 2024
rust 8.rs 308ms 1.6ms 4.9MB 300ms 0ms rustc 1.83.0
crystal 1.cr 313ms 1.8ms 9.2MB 303ms 0ms crystal 1.14.0
nim 1.nim 386ms 2.1ms 4.8MB 373ms 0ms nim/clang 2.2.0
d 1.d 407ms 2.1ms 6.7MB 390ms 0ms ldc2 1.39.0
nim 1.nim 573ms 1.8ms 4.5MB 563ms 0ms nim 2.2.0
wasm 8.rs 698ms 1.7ms 40.4MB 677ms 7ms wasmer/llvm 5.0.2
wasm 8.rs 821ms 15ms 24.0MB 810ms 0ms wasmtime 27.0.0
csharp 2.cs 1064ms 69ms 45.8MB 1037ms 17ms dotnet 9.0.100
java 1b.java 1164ms 9.6ms 54.3MB 1273ms 23ms openjdk 21
java 1b.java 1171ms 5.3ms 55.9MB 1297ms 20ms openjdk 23
java 1b.java 1181ms 39ms 108.6MB 1363ms 33ms graal/jvm 17.0.8
java 1.java 1260ms 13ms 139.9MB 1367ms 57ms graal/jvm 17.0.8
java 1b.java 1278ms 21ms 51.4MB 1277ms 130ms openjdk/zgc 21
java 1a.java 1654ms 9.2ms 54.9MB 1747ms 27ms openjdk 21
java 1a.java 1665ms 2.2ms 55.5MB 1770ms 27ms openjdk 23
java 1a.java 1688ms 16ms 105.6MB 1807ms 37ms graal/jvm 17.0.8
java 1.java 1701ms 1.3ms 202.3MB 1780ms 37ms openjdk 21
java 1.java 1709ms 2.1ms 314.7MB 1770ms 53ms openjdk 23
java 1a.java 1780ms 5.2ms 53.7MB 1753ms 147ms openjdk/zgc 21
csharp 1.cs 2088ms 51ms 42.6MB 2050ms 10ms dotnet 9.0.100
d 1.d 2343ms 397ms 9.3MB 2330ms 0ms dmd 2.109.1
java 1.java 2351ms 5.1ms 853.8MB 1813ms 637ms openjdk/zgc 21
csharp 3.cs 2463ms 14ms 42.8MB 2437ms 10ms dotnet 9.0.100
csharp 3.cs 2526ms 7.2ms 20.2MB 2510ms 0ms dotnet/aot 9.0.100
go 1.go 2674ms 30ms 7.4MB 2667ms 0ms go 1.23.3
csharp 1.cs 3551ms 14ms 20.3MB 3537ms 0ms dotnet/aot 9.0.100
go 1.go 4013ms 30ms 5.4MB 4000ms 0ms tinygo 0.34.0
csharp 1.cs timeout 0.0ms 22.5MB 4987ms 0ms mono 6.12.0
java 2.java timeout 0.0ms 606.2MB 5250ms 140ms openjdk 21
java 2.java timeout 0.0ms 772.9MB 5320ms 140ms openjdk 23
java 2.java timeout 0.0ms 3284.3MB 3460ms 1913ms openjdk/zgc 21

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 12ms 0.1ms 1.3MB 10ms 0ms zig 0.13.0
rust 9.rs 13ms 0.2ms 2.0MB 0ms 0ms rustc 1.85.0-nightly
odin 1.odin 14ms 0.4ms 1.6MB 10ms 0ms odin 2024
rust 8.rs 15ms 0.2ms 1.9MB 10ms 0ms rustc 1.83.0
crystal 1.cr 17ms 0.2ms 6.3MB 10ms 0ms crystal 1.14.0
nim 1.nim 19ms 0.2ms 1.9MB 10ms 0ms nim/clang 2.2.0
d 1.d 20ms 0.3ms 3.0MB 10ms 0ms ldc2 1.39.0
nim 1.nim 27ms 0.7ms 1.6MB 20ms 0ms nim 2.2.0
wasm 8.rs 42ms 0.2ms 37.5MB 27ms 3ms wasmer/llvm 5.0.2
wasm 8.rs 43ms 0.8ms 19.1MB 33ms 0ms wasmtime 27.0.0
d 1.d 91ms 1.2ms 4.5MB 80ms 0ms dmd 2.109.1
go 1.go 113ms 1.1ms 3.4MB 100ms 0ms go 1.23.3
csharp 3.cs 117ms 2.1ms 19.4MB 107ms 0ms dotnet/aot 9.0.100
csharp 2.cs 137ms 15ms 43.0MB 107ms 10ms dotnet 9.0.100
csharp 1.cs 140ms 2.5ms 39.7MB 123ms 3ms dotnet 9.0.100
csharp 1.cs 157ms 1.0ms 19.7MB 143ms 3ms dotnet/aot 9.0.100
go 1.go 169ms 3.0ms 0.3MB 160ms 0ms tinygo 0.34.0
csharp 3.cs 169ms 1.1ms 40.0MB 150ms 10ms dotnet 9.0.100
java 1b-m.java 181ms 13ms 49.6MB 290ms 20ms openjdk 21
java 1.java 196ms 12ms 82.1MB 267ms 27ms openjdk 21
java 1b-m.java 198ms 8.9ms 51.2MB 310ms 20ms openjdk 23
java 1a-m.java 199ms 3.5ms 50.3MB 310ms 17ms openjdk 21
java 1-m.java 200ms 2.7ms 87.0MB 277ms 33ms openjdk 23
java 1a-m.java 201ms 5.5ms 52.1MB 303ms 20ms openjdk 23
java 1-m.java 204ms 14ms 115.4MB 317ms 40ms graal/jvm 17.0.8
java 1a-m.java 211ms 6.8ms 102.6MB 307ms 50ms graal/jvm 17.0.8
java 1b-m.java 233ms 15ms 104.0MB 400ms 40ms graal/jvm 17.0.8
java 1b.java 308ms 1.6ms 49.4MB 303ms 137ms openjdk/zgc 21
java 1a.java 315ms 3.0ms 49.9MB 300ms 133ms openjdk/zgc 21
java 1.java 338ms 4.9ms 116.4MB 270ms 160ms openjdk/zgc 21
csharp 1.cs 565ms 2.5ms 25.9MB 550ms 0ms mono 6.12.0
java 2-m.java 579ms 14ms 826.3MB 843ms 127ms openjdk 23
java 2-m.java 621ms 39ms 586.7MB 887ms 127ms openjdk 21
java 2.java 1590ms 18ms 1349.9MB 863ms 1037ms openjdk/zgc 21