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

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 7 runs

Native Gocompiled
5.11 ms0.08×
Pipitbytecode VM
65.1 msbaseline
CPython 3.14bytecode VM
84.4 ms1.30×
PyPy 7.3tracing JIT
42.3 ms0.65×
Ttengobytecode VM
125 ms1.92×
Sscriggobytecode VM
150 ms2.31×
Mmvmbytecode VM
177 ms2.72×
YyaegiAST walker
228 ms3.51×

Full statistics

RunnerNCompileRuntimeP95StddevRSSvs pipitStatus
Native Gocompiled7109 ms5.11 ms5.27 ms91.6 µs1.62 GiB0.08×OK
Pipitbytecode VM72.22 ms65.1 ms67.4 ms809 µs591 MiB1.00×OK
CPython 3.14bytecode VM7655 µs84.4 ms87.9 ms1.75 msn/a1.30×OK
PyPy 7.3tracing JIT7497 µs42.3 ms43.3 ms883 µsn/a0.65×OK
tengobytecode VM7331 µs125 ms150 ms9.07 ms1.68 GiB1.92×OK
scriggobytecode VM7742 µs150 ms174 ms12.2 ms1.68 GiB2.31×OK
mvmbytecode VM7604 µs177 ms178 ms826 µs1.68 GiB2.72×OK
yaegiAST walker7565 µs228 ms275 ms20.7 ms1.68 GiB3.51×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