Host
Intel Core Ultra 9 285K · 24 cores
Platform
linux/amd64
Go
go1.27.0
CPython
python:3.14-slim
PyPy
pypy:3.11-slim
Runs / combo
7 + 2 warmup

Mandelbrot (FP)

Escape-time render of the Mandelbrot set at 200×200 with 80 iters/pixel. Pure float64 tight loop.

Compile time · median (cold)

median of 7 runs

Native Gocompiled
107 ms119×
Pipitbytecode VM
906 µsbaseline
CPython 3.14bytecode VM
312 µs0.34×
PyPy 7.3tracing JIT
243 µs0.27×
Ttengobytecode VM
191 µs0.21×
Sscriggobytecode VM
201 µs0.22×
Mmvmbytecode VM
270 µs0.30×
YyaegiAST walker
325 µs0.36×

Full statistics

RunnerNCompileRuntimeP95StddevRSSvs pipitStatus
Native Gocompiled7107 ms3.39 ms3.40 ms2.13 µs1.62 GiB119×OK
Pipitbytecode VM7906 µs24.5 ms25.0 ms246 µs591 MiB1.00×OK
CPython 3.14bytecode VM7312 µs146 ms155 ms3.12 msn/a0.34×OK
PyPy 7.3tracing JIT7243 µs13.1 ms13.8 ms681 µsn/a0.27×OK
tengobytecode VM7191 µs228 ms237 ms5.14 ms1.69 GiB0.21×OK
scriggobytecode VM7201 µs201 ms203 ms1.71 ms1.69 GiB0.22×OK
mvmbytecode VM7270 µs189 ms192 ms1.53 ms1.69 GiB0.30×OK
yaegiAST walker7325 µs216 ms236 ms10.7 ms1.69 GiB0.36×OK
Workload & symmetry rules

Workload

For each of 200×200 pixels: iterate the Mandelbrot recurrence z = z² + c up to 80 times, count the iteration at which |z| > 2. Output the sum of iteration counts so canonical hashing doesn't depend on FP equality.

Symmetry rules

  • Pure float64 scalar arithmetic (no complex type, no numpy, no math.cmath).
  • Inner loop manually unrolled per the README's reference shape; no language-specific shortcuts.

Why this benchmark exists

The one shape of work missing from the rest of the suite: a tight float64 inner loop. This is where pipit's typed float register bank pays its biggest dividend.

Source code