All mandelbrot problem benchmarks

Current benchmark data was generated on Sun Jun 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 224ms 14ms 7.5MB 840ms 13ms clang 14.0.0-1ubuntu1.1
rust 9.rs 247ms 0.7ms 4.9MB 240ms 0ms rustc 1.89.0-nightly
zig 1.zig 247ms 0.8ms 4.1MB 240ms 0ms zig 0.14.1
c 1-mffi.c 269ms 8.5ms 6.5MB 817ms 0ms gcc 15.1.0
odin 1.odin 286ms 0.5ms 4.6MB 280ms 0ms odin 2024
rust 8.rs 291ms 1.6ms 4.8MB 283ms 0ms rustc 1.87.0
d 1.d 294ms 0.5ms 7.5MB 283ms 0ms ldc2 1.40.1
crystal 1.cr 314ms 0.9ms 9.3MB 300ms 0ms crystal 1.16.3
c 1-mffi.c 330ms 1.5ms 6.0MB 320ms 0ms zigcc 0.14.1
c 1-ffi.c 332ms 2.8ms 6.0MB 323ms 0ms zigcc 0.14.1
csharp 4.cs 332ms 0.7ms 37.3MB 310ms 10ms dotnet 9.0.300
nim 1.nim 389ms 1.0ms 4.8MB 380ms 0ms nim/clang 2.2.4
c 1-ffi.c 452ms 0.9ms 6.5MB 440ms 0ms clang 14.0.0-1ubuntu1.1
csharp 2.cs 541ms 67ms 39.9MB 520ms 13ms dotnet 9.0.300
c 1-ffi.c 543ms 2.3ms 6.6MB 533ms 0ms gcc 15.1.0
nim 1.nim 578ms 2.7ms 4.5MB 567ms 0ms nim 2.2.4
wasm 8.rs 832ms 3.3ms 21.1MB 817ms 0ms wasmtime 33.0.0
java 1b.java 1162ms 13ms 55.7MB 1267ms 20ms openjdk 23
java 1b.java 1167ms 5.8ms 54.6MB 1290ms 20ms openjdk 21
java 1b.java 1194ms 11ms 108.9MB 1423ms 43ms graal/jvm 17.0.8
java 1.java 1251ms 2.5ms 138.1MB 1360ms 47ms graal/jvm 17.0.8
java 1b.java 1285ms 3.9ms 51.4MB 1280ms 140ms openjdk/zgc 21
java 1a.java 1654ms 4.5ms 55.9MB 1753ms 20ms openjdk 23
java 1a.java 1655ms 9.7ms 54.9MB 1757ms 20ms openjdk 21
java 1a.java 1673ms 5.4ms 102.6MB 1780ms 40ms graal/jvm 17.0.8
java 1.java 1704ms 4.5ms 202.4MB 1777ms 43ms openjdk 21
java 1.java 1713ms 11ms 317.6MB 1767ms 60ms openjdk 23
java 1a.java 1770ms 2.2ms 51.6MB 1740ms 140ms openjdk/zgc 21
csharp 1.cs 2058ms 8.8ms 36.7MB 2030ms 10ms dotnet 9.0.300
d 1.d 2134ms 31ms 8.4MB 2123ms 0ms dmd 2.111.0
csharp 3.cs 2348ms 2.6ms 16.4MB 2333ms 0ms dotnet/aot 9.0.300
java 1.java 2370ms 4.2ms 840.7MB 1800ms 673ms openjdk/zgc 21
csharp 3.cs 2443ms 2.4ms 36.4MB 2420ms 10ms dotnet 9.0.300
go 1.go 3230ms 12ms 7.7MB 3223ms 0ms go 1.24.3
csharp 1.cs 3889ms 13ms 16.3MB 3873ms 0ms dotnet/aot 9.0.300
go 1.go 4079ms 17ms 3.4MB 4070ms 0ms tinygo 0.37.0
csharp 1.cs timeout 0.0ms 24.1MB 4987ms 0ms mono 6.12.0
java 2.java timeout 0.0ms 668.0MB 5277ms 113ms openjdk 21
java 2.java timeout 0.0ms 780.8MB 5280ms 133ms openjdk 23
java 2.java timeout 0.0ms 3310.2MB 3417ms 1943ms 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.1MB 10ms 0ms zig 0.14.1
rust 9.rs 13ms 0.3ms 2.0MB 10ms 0ms rustc 1.89.0-nightly
odin 1.odin 14ms 0.2ms 1.6MB 10ms 0ms odin 2024
rust 8.rs 14ms 0.4ms 1.9MB 10ms 0ms rustc 1.87.0
d 1.d 15ms 0.2ms 3.0MB 10ms 0ms ldc2 1.40.1
c 1-mffi.c 15ms 0.5ms 4.6MB 30ms 0ms clang 14.0.0-1ubuntu1.1
c 1-ffi.c 16ms 0.1ms 3.0MB 10ms 0ms zigcc 0.14.1
c 1-mffi.c 16ms 0.2ms 3.0MB 10ms 0ms zigcc 0.14.1
crystal 1.cr 17ms 0.0ms 5.4MB 10ms 0ms crystal 1.16.3
c 1-mffi.c 17ms 2.0ms 3.8MB 43ms 0ms gcc 15.1.0
nim 1.nim 18ms 0.2ms 1.9MB 10ms 0ms nim/clang 2.2.4
c 1-ffi.c 21ms 0.1ms 3.5MB 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 43ms 1.0ms 18.2MB 30ms 0ms wasmtime 33.0.0
csharp 4.cs 82ms 8.1ms 34.5MB 60ms 10ms dotnet 9.0.300
d 1.d 90ms 1.6ms 4.6MB 80ms 0ms dmd 2.111.0
csharp 3.cs 108ms 3.3ms 13.5MB 97ms 0ms dotnet/aot 9.0.300
csharp 2.cs 121ms 0.6ms 37.0MB 97ms 10ms dotnet 9.0.300
csharp 1.cs 136ms 2.2ms 33.5MB 120ms 10ms dotnet 9.0.300
go 1.go 139ms 3.4ms 3.6MB 130ms 0ms go 1.24.3
csharp 3.cs 169ms 5.5ms 33.9MB 143ms 10ms dotnet 9.0.300
go 1.go 172ms 3.3ms 0.5MB 167ms 0ms tinygo 0.37.0
csharp 1.cs 175ms 1.1ms 11.9MB 167ms 0ms dotnet/aot 9.0.300
java 1b-m.java 177ms 11ms 49.5MB 283ms 20ms openjdk 21
java 1b-m.java 188ms 6.3ms 50.5MB 293ms 23ms openjdk 23
java 1a-m.java 190ms 4.7ms 50.1MB 293ms 23ms openjdk 21
java 1-m.java 192ms 9.2ms 81.7MB 267ms 27ms openjdk 21
java 1a-m.java 192ms 5.4ms 52.1MB 293ms 27ms openjdk 23
java 1-m.java 201ms 8.4ms 111.9MB 303ms 47ms graal/jvm 17.0.8
java 1-m.java 202ms 3.9ms 87.3MB 287ms 27ms openjdk 23
java 1a-m.java 205ms 4.7ms 98.5MB 303ms 40ms graal/jvm 17.0.8
java 1b-m.java 218ms 17ms 101.3MB 367ms 43ms graal/jvm 17.0.8
java 1b.java 305ms 25ms 47.4MB 297ms 140ms openjdk/zgc 21
java 1a.java 316ms 1.7ms 47.8MB 297ms 140ms openjdk/zgc 21
java 1.java 338ms 2.3ms 114.4MB 267ms 160ms openjdk/zgc 21
java 2-m.java 554ms 13ms 624.9MB 847ms 93ms openjdk 21
csharp 1.cs 564ms 3.2ms 23.9MB 550ms 0ms mono 6.12.0
java 2-m.java 566ms 11ms 773.8MB 837ms 103ms openjdk 23
java 2.java 1608ms 55ms 1400.9MB 823ms 1083ms openjdk/zgc 21