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

Mini JSON parse

Hand-rolled JSON parser over a 100 KiB document with mixed nesting.

Compile time · median (cold)

median of 7 runs

Native Gocompiled
113 ms39.7×
Pipitbytecode VM
2.85 msbaseline
CPython 3.14bytecode VM
908 µs0.32×
PyPy 7.3tracing JIT
697 µs0.25×
Ttengobytecode VM
n/a
Sscriggobytecode VM
n/a
Mmvmbytecode VM
864 µs0.30×
YyaegiAST walker
852 µs0.30×

Full statistics

RunnerNCompileRuntimeP95StddevRSSvs pipitStatus
Native Gocompiled7113 ms13.6 ms14.7 ms534 µs451 MiB39.7×OK
Pipitbytecode VM72.85 ms117 ms122 ms2.07 ms311 MiB1.00×OK
CPython 3.14bytecode VM7908 µs171 ms180 ms4.07 msn/a0.32×OK
PyPy 7.3tracing JIT7697 µs121 ms138 ms8.26 msn/a0.25×OK
tengobytecode VM0n/an/an/an/an/an/ano data
scriggobytecode VM0n/an/an/an/an/an/aunsupported
mvmbytecode VM7864 µs348 ms401 ms21.8 ms1.52 GiB0.30×OK
yaegiAST walker7852 µs1.65 s1.77 s73.5 ms1.52 GiB0.30×OK
Workload & symmetry rules

Workload

Parse a 100 KiB JSON document into a generic tree, then walk the tree and sum every integer node. Print the sum.

Symmetry rules

  • Hand-rolled recursive-descent parser; no encoding/json, no json.loads.
  • Returns a tagged-union tree, walked by switch/match.
Source code