Dijkstra shortest paths
Shortest paths from one source over a 10k-node sparse graph using a binary heap.
Compile time · median (cold)
Full statistics
| Runner | N | Compile | Runtime | P95 | Stddev | RSS | vs pipit | Status |
|---|---|---|---|---|---|---|---|---|
| Native Gocompiled | 7 | 109 ms | 5.11 ms | 5.27 ms | 91.6 µs | 1.62 GiB | 48.9× | OK |
| Pipitbytecode VM | 7 | 2.22 ms | 65.1 ms | 67.4 ms | 809 µs | 591 MiB | 1.00× | OK |
| CPython 3.14bytecode VM | 7 | 655 µs | 84.4 ms | 87.9 ms | 1.75 ms | n/a | 0.30× | OK |
| PyPy 7.3tracing JIT | 7 | 497 µs | 42.3 ms | 43.3 ms | 883 µs | n/a | 0.22× | OK |
| tengobytecode VM | 7 | 331 µs | 125 ms | 150 ms | 9.07 ms | 1.68 GiB | 0.15× | OK |
| scriggobytecode VM | 7 | 742 µs | 150 ms | 174 ms | 12.2 ms | 1.68 GiB | 0.33× | OK |
| mvmbytecode VM | 7 | 604 µs | 177 ms | 178 ms | 826 µs | 1.68 GiB | 0.27× | OK |
| yaegiAST walker | 7 | 565 µs | 228 ms | 275 ms | 20.7 ms | 1.68 GiB | 0.25× | 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, nocontainer/heap). - Adjacency stored as parallel slices / lists.
Source code
pipit / Go
pipit_source.gonative Go
native_main.goCPython / PyPy
cpython.pytengo
script.tengo