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

Dijkstra shortest paths

Shortest paths from one source over a 10k-node sparse graph using a binary heap.

Runtime · median per inner-loop window

median of 10 runs

Native Gocompiled
4.40 ms0.04×
Piko interpbytecode VM
112 msbaseline
CPython 3.13bytecode VM
89.8 ms0.80×
PyPy 7.3tracing JIT
37.4 ms0.33×
Ttengobytecode VM
160 ms1.43×
Sscriggobytecode VM
147 ms1.31×
Mmvmbytecode VM
n/a
YyaegiAST walker
292 ms2.60×

Full statistics

RunnerNCompileRuntimeP95StddevRSSvs pikoStatus
Native Gocompiled10182 ms4.40 ms4.57 ms72.3 µs69 MiB0.04×OK
Piko interpbytecode VM102.01 ms112 ms115 ms1.00 ms193 MiB1.00×OK
CPython 3.13bytecode VM10529 µs89.8 ms91.4 ms1.56 msn/a0.80×OK
PyPy 7.3tracing JIT10437 µs37.4 ms39.6 ms719 µsn/a0.33×OK
tengobytecode VM10393 µs160 ms162 ms2.28 ms1.03 GiB1.43×OK
scriggobytecode VM10643 µs147 ms166 ms7.09 ms431 MiB1.31×OK
mvmbytecode VM0n/an/an/an/an/an/aunsupported
yaegiAST walker10682 µs292 ms368 ms28.9 ms74 MiB2.60×OK
Workload & symmetry rules

Workload

A 10,000-node directed graph with ~5 edges per node and integer weights 1..100. Dijkstra from node 0. Print the sum of all reachable distances.

Symmetry rules

  • Hand-rolled binary heap (no heapq.heappush, no container/heap).
  • Adjacency stored as parallel slices / lists.
Source code