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

Open-addressing hash map

Hand-rolled FNV-1a hash table, 100k mixed put/get/delete operations. No built-in map allowed.

Compile time · median (cold)

median of 7 runs

Native Gocompiled
108 ms44.2×
Pipitbytecode VM
2.44 msbaseline
CPython 3.14bytecode VM
769 µs0.32×
PyPy 7.3tracing JIT
544 µs0.22×
Ttengobytecode VM
408 µs0.17×
Sscriggobytecode VM
n/a
Mmvmbytecode VM
738 µs0.30×
YyaegiAST walker
628 µs0.26×

Full statistics

RunnerNCompileRuntimeP95StddevRSSvs pipitStatus
Native Gocompiled7108 ms22.6 ms24.1 ms553 µs1.62 GiB44.2×OK
Pipitbytecode VM72.44 ms292 ms308 ms6.38 ms591 MiB1.00×OK
CPython 3.14bytecode VM7769 µs659 ms660 ms3.23 msn/a0.32×OK
PyPy 7.3tracing JIT7544 µs94.5 ms110 ms7.14 msn/a0.22×OK
tengobytecode VM7408 µs1.60 s1.62 s28.8 ms1.69 GiB0.17×OK
scriggobytecode VM0n/an/an/an/an/an/aunsupported
mvmbytecode VM7738 µs764 ms774 ms4.74 ms1.69 GiB0.30×OK
yaegiAST walker7628 µs1.47 s1.51 s31.9 ms1.69 GiB0.26×OK
Workload & symmetry rules

Workload

Build a HashTable with parallel keys[], values[], and state[] arrays (0=empty, 1=occupied, 2=tombstone). Linear probing on collision, doubles capacity when load > 70%. Hash function is byte-by-byte FNV-1a. A deterministic LCG drives 100,000 mixed operations.

Symmetry rules

  • No built-in map / dict anywhere in the hot path.
  • No built-in or stdlib hash functions; FNV-1a must be hand-rolled.
  • Power-of-two capacity, linear probing, tombstone deletes: every runner uses the same algorithm.

Why this benchmark exists

Pure interpreter throughput without the cheat of a C-level hash table. Reveals what the interpreter's array / arithmetic / loop performance looks like under sustained load.

Source code