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.

Runtime · median per inner-loop window

median of 7 runs

Native Gocompiled
1.12 ms0.06×
Pipitbytecode VM
18.4 msbaseline
CPython 3.14bytecode VM
26.2 ms1.42×
PyPy 7.3tracing JIT
25.9 ms1.41×
Ttengobytecode VM
53.4 ms2.90×
Sscriggobytecode VM
n/a
Mmvmbytecode VM
39.8 ms2.16×
YyaegiAST walker
114 ms6.19×

Full statistics

RunnerNCompileRuntimeP95StddevRSSvs pipitStatus
Native Gocompiled7109 ms1.12 ms1.13 ms2.98 µs1.62 GiB0.06×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/a1.42×OK
PyPy 7.3tracing JIT7410 µs25.9 ms28.0 ms951 µsn/a1.41×OK
tengobytecode VM7273 µs53.4 ms54.1 ms465 µs1.68 GiB2.90×OK
scriggobytecode VM0n/an/an/an/an/an/aunsupported
mvmbytecode VM7438 µs39.8 ms41.3 ms590 µs1.68 GiB2.16×OK
yaegiAST walker7491 µs114 ms122 ms9.82 ms1.68 GiB6.19×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