Host
Intel Core Ultra 9 285K · 24 cores
Platform
linux/amd64
Go
go1.26.0
CPython
python:3.13-slim
PyPy
pypy:3.10-slim
Runs / combo
10 + 2 warmup

Sudoku solver, 100 boards

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

Compile time · median (cold)

median of 10 runs

Native Gocompiled
184 ms126×
Piko interpbytecode VM
1.46 msbaseline
CPython 3.13bytecode VM
418 µs0.29×
PyPy 7.3tracing JIT
358 µs0.25×
Ttengobytecode VM
294 µs0.20×
Sscriggobytecode VM
n/a
Mmvmbytecode VM
338 µs0.23×
YyaegiAST walker
616 µs0.42×

Full statistics

RunnerNCompileRuntimeP95StddevRSSvs pikoStatus
Native Gocompiled10184 ms1.07 ms1.09 ms6.82 µs69 MiB126×OK
Piko interpbytecode VM101.46 ms20.9 ms21.1 ms142 µs97 MiB1.00×OK
CPython 3.13bytecode VM10418 µs26.5 ms27.1 ms398 µsn/a0.29×OK
PyPy 7.3tracing JIT10358 µs21.4 ms21.6 ms212 µsn/a0.25×OK
tengobytecode VM10294 µs60.6 ms69.1 ms2.71 ms340 MiB0.20×OK
scriggobytecode VM0n/an/an/an/an/an/aunsupported
mvmbytecode VM10338 µs50.7 ms76.2 ms9.35 ms62 MiB0.23×OK
yaegiAST walker10616 µs138 ms156 ms13.6 ms66 MiB0.42×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, piko'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