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

Markov text generation

Train a bigram Markov model on a 1 MiB corpus and emit 10,000 words.

Compile time · median (cold)

median of 10 runs

Native Gocompiled
181 ms172×
Piko interpbytecode VM
1.05 msbaseline
CPython 3.13bytecode VM
354 µs0.34×
PyPy 7.3tracing JIT
314 µs0.30×
Ttengobytecode VM
239 µs0.23×
Sscriggobytecode VM
413 µs0.39×
Mmvmbytecode VM
334 µs0.32×
YyaegiAST walker
374 µs0.36×

Full statistics

RunnerNCompileRuntimeP95StddevRSSvs pikoStatus
Native Gocompiled10181 ms5.42 ms6.07 ms456 µs68 MiB172×OK
Piko interpbytecode VM101.05 ms23.7 ms24.7 ms355 µs255 MiB1.00×OK
CPython 3.13bytecode VM10354 µs27.2 ms27.6 ms496 µsn/a0.34×OK
PyPy 7.3tracing JIT10314 µs9.49 ms9.77 ms128 µsn/a0.30×OK
tengobytecode VM10239 µs62.8 ms72.2 ms6.63 ms451 MiB0.23×OK
scriggobytecode VM10413 µs56.2 ms74.4 ms7.09 ms428 MiB0.39×OK
mvmbytecode VM10334 µs62.7 ms79.5 ms6.14 ms66 MiB0.32×OK
yaegiAST walker10374 µs58.3 ms67.0 ms9.31 ms66 MiB0.36×OK
Workload & symmetry rules

Workload

Build a bigram model from a 1 MiB lorem corpus. Sample 10,000 tokens from a deterministic LCG-seeded RNG. Print a fingerprint of the output.

Symmetry rules

  • Hand-rolled LCG (no random C module, no math/rand).
  • Hash map of (prev → counts) built from a byte-loop tokeniser.
Source code