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

Expression evaluator

Tokenise then evaluate 10,000 arithmetic expressions (mixed +, -, *, /, parens).

Compile time · median (cold)

median of 7 runs

Native Gocompiled
108 ms46.0×
Pipitbytecode VM
2.35 msbaseline
CPython 3.14bytecode VM
712 µs0.30×
PyPy 7.3tracing JIT
513 µs0.22×
Ttengobytecode VM
395 µs0.17×
Sscriggobytecode VM
n/a
Mmvmbytecode VM
712 µs0.30×
YyaegiAST walker
573 µs0.24×

Full statistics

RunnerNCompileRuntimeP95StddevRSSvs pipitStatus
Native Gocompiled7108 ms61.9 ms62.7 ms600 µs1.62 GiB46.0×OK
Pipitbytecode VM72.35 ms1.21 s1.24 s13.3 ms534 MiB1.00×OK
CPython 3.14bytecode VM7712 µs1.31 s1.32 s7.01 msn/a0.30×OK
PyPy 7.3tracing JIT7513 µs258 ms286 ms11.8 msn/a0.22×OK
tengobytecode VM7395 µs4.19 s4.24 s26.9 ms1.66 GiB0.17×OK
scriggobytecode VM0n/an/an/an/an/an/aunsupported
mvmbytecode VM7712 µs4.21 s4.24 s21.7 ms1.68 GiB0.30×OK
yaegiAST walker7573 µs9.86 s9.93 s39.1 ms1.66 GiB0.24×OK
Workload & symmetry rules

Workload

For each of 10,000 randomly-generated infix expressions: tokenise with a byte-loop lexer, parse via shunting-yard, evaluate over an integer stack.

Symmetry rules

  • Bring-your-own tokeniser, parser, evaluator. No eval(), no AST library.
  • Operands are 64-bit integers; division is integer division.
Source code