All mandelbrot problem benchmarks

Current benchmark data was generated on Tue Mar 25 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 222ms 13ms 7.6MB 827ms 10ms clang 14.0.0-1ubuntu1.1
zig 1.zig 247ms 0.1ms 4.0MB 240ms 0ms zig 0.14.0
rust 9.rs 256ms 16ms 4.7MB 250ms 0ms rustc 1.87.0-nightly
c 1-mffi.c 265ms 2.3ms 6.7MB 810ms 0ms gcc 14.2.0
odin 1.odin 287ms 1.7ms 4.5MB 280ms 0ms odin 2024
d 1.d 295ms 0.7ms 7.0MB 283ms 0ms ldc2 1.40.1
rust 8.rs 308ms 1.4ms 4.7MB 300ms 0ms rustc 1.85.1
crystal 1.cr 313ms 0.7ms 9.2MB 300ms 0ms crystal 1.15.1
c 1-mffi.c 332ms 2.1ms 5.9MB 320ms 0ms zigcc 0.14.0
c 1-ffi.c 332ms 2.5ms 5.9MB 323ms 0ms zigcc 0.14.0
csharp 4.cs 344ms 11ms 37.3MB 323ms 10ms dotnet 9.0.202
nim 1.nim 388ms 0.7ms 4.7MB 380ms 0ms nim/clang 2.2.2
c 1-ffi.c 456ms 4.1ms 6.4MB 443ms 0ms clang 14.0.0-1ubuntu1.1
c 1-ffi.c 541ms 2.5ms 6.7MB 530ms 0ms gcc 14.2.0
csharp 2.cs 562ms 60ms 39.7MB 537ms 20ms dotnet 9.0.202
nim 1.nim 577ms 2.5ms 4.4MB 567ms 0ms nim 2.2.2
wasm 8.rs 822ms 1.7ms 20.3MB 810ms 0ms wasmtime 31.0.0
java 1b.java 1163ms 28ms 53.9MB 1280ms 20ms openjdk 21
java 1b.java 1165ms 9.9ms 55.8MB 1280ms 27ms openjdk 23
java 1b.java 1192ms 10ms 110.0MB 1417ms 40ms graal/jvm 17.0.8
java 1.java 1248ms 2.5ms 138.4MB 1357ms 47ms graal/jvm 17.0.8
java 1b.java 1291ms 16ms 50.8MB 1280ms 143ms openjdk/zgc 21
java 1a.java 1657ms 5.6ms 54.7MB 1757ms 17ms openjdk 21
java 1a.java 1660ms 6.7ms 56.1MB 1760ms 20ms openjdk 23
java 1a.java 1681ms 2.9ms 102.0MB 1790ms 43ms graal/jvm 17.0.8
java 1.java 1702ms 4.3ms 202.0MB 1770ms 40ms openjdk 21
java 1.java 1722ms 3.0ms 320.5MB 1783ms 57ms openjdk 23
java 1a.java 1792ms 6.1ms 51.6MB 1763ms 150ms openjdk/zgc 21
csharp 1.cs 2042ms 11ms 36.6MB 2020ms 10ms dotnet 9.0.202
d 1.d 2187ms 22ms 9.0MB 2177ms 0ms dmd 2.110.0
csharp 3.cs 2349ms 4.2ms 16.5MB 2330ms 3ms dotnet/aot 9.0.202
java 1.java 2406ms 36ms 881.5MB 1803ms 710ms openjdk/zgc 21
csharp 3.cs 2458ms 0.7ms 36.4MB 2433ms 10ms dotnet 9.0.202
go 1.go 3230ms 5.6ms 7.7MB 3220ms 0ms go 1.24.1
csharp 1.cs 3869ms 62ms 16.4MB 3857ms 0ms dotnet/aot 9.0.202
go 1.go 4083ms 22ms 3.4MB 4073ms 0ms tinygo 0.37.0
csharp 1.cs timeout 0.0ms 23.2MB 4990ms 0ms mono 6.12.0
java 2.java timeout 0.0ms 636.5MB 5327ms 117ms openjdk 21
java 2.java timeout 0.0ms 807.5MB 5327ms 133ms openjdk 23
java 2.java timeout 0.0ms 3477.5MB 3343ms 2040ms 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.0
rust 9.rs 13ms 0.2ms 1.9MB 10ms 0ms rustc 1.87.0-nightly
odin 1.odin 14ms 0.2ms 1.6MB 10ms 0ms odin 2024
d 1.d 15ms 0.3ms 3.0MB 10ms 0ms ldc2 1.40.1
c 1-ffi.c 16ms 0.1ms 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 18ms 1.7ms 3.8MB 43ms 0ms gcc 14.2.0
crystal 1.cr 18ms 0.5ms 6.3MB 10ms 0ms crystal 1.15.1
c 1-mffi.c 18ms 1.6ms 4.6MB 30ms 0ms clang 14.0.0-1ubuntu1.1
rust 8.rs 18ms 5.2ms 1.9MB 13ms 0ms rustc 1.85.1
nim 1.nim 19ms 0.4ms 2.0MB 10ms 0ms nim/clang 2.2.2
c 1-ffi.c 22ms 0.1ms 3.6MB 10ms 0ms clang 14.0.0-1ubuntu1.1
c 1-ffi.c 26ms 1.0ms 3.8MB 20ms 0ms gcc 14.2.0
nim 1.nim 27ms 1.4ms 1.6MB 20ms 0ms nim 2.2.2
wasm 8.rs 43ms 0.4ms 17.4MB 30ms 0ms wasmtime 31.0.0
csharp 4.cs 81ms 1.1ms 34.3MB 57ms 13ms dotnet 9.0.202
d 1.d 96ms 1.6ms 4.8MB 90ms 0ms dmd 2.110.0
csharp 3.cs 110ms 3.4ms 13.6MB 97ms 0ms dotnet/aot 9.0.202
csharp 2.cs 118ms 6.1ms 36.9MB 93ms 10ms dotnet 9.0.202
go 1.go 139ms 2.7ms 3.6MB 130ms 0ms go 1.24.1
csharp 1.cs 143ms 4.8ms 33.4MB 120ms 10ms dotnet 9.0.202
csharp 3.cs 168ms 2.2ms 33.6MB 147ms 7ms dotnet 9.0.202
go 1.go 170ms 0.3ms 0.5MB 160ms 0ms tinygo 0.37.0
csharp 1.cs 172ms 2.8ms 13.1MB 160ms 0ms dotnet/aot 9.0.202
java 1b-m.java 175ms 5.3ms 49.4MB 270ms 27ms openjdk 21
java 1b-m.java 182ms 3.7ms 50.6MB 277ms 20ms openjdk 23
java 1a-m.java 189ms 1.1ms 50.8MB 290ms 20ms openjdk 21
java 1a-m.java 193ms 3.7ms 52.2MB 293ms 27ms openjdk 23
java 1-m.java 193ms 0.6ms 87.2MB 270ms 27ms openjdk 23
java 1-m.java 194ms 5.5ms 82.1MB 270ms 27ms openjdk 21
java 1-m.java 196ms 1.9ms 113.3MB 300ms 43ms graal/jvm 17.0.8
java 1a-m.java 211ms 0.1ms 98.3MB 317ms 40ms graal/jvm 17.0.8
java 1b-m.java 237ms 31ms 101.3MB 403ms 43ms graal/jvm 17.0.8
java 1b.java 316ms 2.2ms 47.7MB 300ms 147ms openjdk/zgc 21
java 1a.java 318ms 2.3ms 49.4MB 297ms 143ms openjdk/zgc 21
java 1.java 339ms 5.1ms 114.1MB 270ms 163ms openjdk/zgc 21
java 2-m.java 564ms 12ms 624.8MB 847ms 90ms openjdk 21
csharp 1.cs 572ms 2.7ms 23.9MB 557ms 0ms mono 6.12.0
java 2-m.java 581ms 9.4ms 787.4MB 867ms 103ms openjdk 23
java 2.java 1662ms 61ms 1399.5MB 840ms 1130ms openjdk/zgc 21