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

Sudoku solver, 100 boards

Backtracking solver across 100 medium-difficulty boards. End-to-end favours pipit; inner-loop flips the verdict.

Compile time · median (cold)

median of 7 runs

Native Gocompiled
109 ms73.8×
Pipitbytecode VM
1.48 msbaseline
CPython 3.14bytecode VM
512 µs0.35×
PyPy 7.3tracing JIT
410 µs0.28×
Ttengobytecode VM
273 µs0.18×
Sscriggobytecode VM
n/a
Mmvmbytecode VM
438 µs0.30×
YyaegiAST walker
491 µs0.33×

Full statistics

RunnerNCompileRuntimeP95StddevRSSvs pipitStatus
Native Gocompiled7109 ms1.12 ms1.13 ms2.98 µs1.62 GiB73.8×OK
Pipitbytecode VM71.48 ms18.4 ms18.7 ms99.2 µs591 MiB1.00×OK
CPython 3.14bytecode VM7512 µs26.2 ms26.3 ms88.7 µsn/a0.35×OK
PyPy 7.3tracing JIT7410 µs25.9 ms28.0 ms951 µsn/a0.28×OK
tengobytecode VM7273 µs53.4 ms54.1 ms465 µs1.68 GiB0.18×OK
scriggobytecode VM0n/an/an/an/an/an/aunsupported
mvmbytecode VM7438 µs39.8 ms41.3 ms590 µs1.68 GiB0.30×OK
yaegiAST walker7491 µs114 ms122 ms9.82 ms1.68 GiB0.33×OK
Workload & symmetry rules

Workload

Solve 100 9×9 sudoku boards via classical backtracking with most-constrained-cell selection. Print a 32-bit fingerprint of the concatenated solutions.

Symmetry rules

  • Pure backtracking: no SAT solver, no constraint propagation library.
  • Boards stored as flat 81-element arrays.

Why end-to-end and inner-loop disagree

End-to-end includes interpreter startup. Inner-loop amortises it. On this workload, pipit's startup is fast enough to win the e2e race despite slower hot-path code; once startup is amortised, PyPy's JIT pulls ahead.

Source code