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

Generic numeric pipeline

Generic Sum / Max / Min over 500 slices each of uint32 and int64. Exercises type-parameterised dispatch.

Compile time · median (cold)

median of 7 runs

Native Gocompiled
108 ms65.4×
Pipitbytecode VM
1.65 msbaseline
CPython 3.14bytecode VM
370 µs0.22×
PyPy 7.3tracing JIT
307 µs0.19×
Ttengobytecode VM
240 µs0.15×
Sscriggobytecode VM
n/a
Mmvmbytecode VM
402 µs0.24×
YyaegiAST walker
453 µs0.28×

Full statistics

RunnerNCompileRuntimeP95StddevRSSvs pipitStatus
Native Gocompiled7108 ms696 µs700 µs1.96 µs1.62 GiB65.4×OK
Pipitbytecode VM71.65 ms17.7 ms18.0 ms127 µs592 MiB1.00×OK
CPython 3.14bytecode VM7370 µs32.5 ms32.6 ms171 µsn/a0.22×OK
PyPy 7.3tracing JIT7307 µs10.2 ms11.1 ms584 µsn/a0.19×OK
tengobytecode VM7240 µs70.9 ms86.2 ms6.75 ms1.69 GiB0.15×OK
scriggobytecode VM0n/an/an/an/an/an/aunsupported
mvmbytecode VM7402 µs40.0 ms50.2 ms3.66 ms1.69 GiB0.24×OK
yaegiAST walker7453 µs42.0 ms57.8 ms6.94 ms1.69 GiB0.28×OK
Workload & symmetry rules

Workload

Generate 500 slices of 100 uint32 values via LCG; apply GenericSum, GenericMax, GenericMin to each, XOR-folding results. Repeat with 500 slices of 100 int64 values, the same generic functions in a second instantiation. Total 6,000 generic dispatches per outer call, each iterating 100 elements.

Symmetry rules

  • Go uses real [T Numeric] generics; Python uses the equivalent duck-typed function (it has no separate generic-dispatch primitive, so the comparison is what Python's runtime cost looks like on the same workload).

Why this benchmark exists

Distinct from interface dispatch (bench 13) and closure dispatch (bench 17). Measures whether pipit's generics path has competitive specialisation.

Source code