Trie of 50k words
Insert 50k dictionary words into a trie; perform 10k prefix queries.
Runtime · median per inner-loop window
Full statistics
| Runner | N | Compile | Runtime | P95 | Stddev | RSS | vs pipit | Status |
|---|---|---|---|---|---|---|---|---|
| Native Gocompiled | 7 | 109 ms | 8.68 ms | 8.75 ms | 37.8 µs | 1.62 GiB | 0.03× | OK |
| Pipitbytecode VM | 7 | 1.22 ms | 279 ms | 296 ms | 5.80 ms | 591 MiB | 1.00× | OK |
| CPython 3.14bytecode VM | 7 | 474 µs | 526 ms | 539 ms | 5.60 ms | n/a | 1.89× | OK |
| PyPy 7.3tracing JIT | 7 | 333 µs | 54.4 ms | 55.4 ms | 651 µs | n/a | 0.19× | OK |
| tengobytecode VM | 7 | 274 µs | 1.31 s | 1.34 s | 16.6 ms | 1.69 GiB | 4.69× | OK |
| scriggobytecode VM | 0 | n/a | n/a | n/a | n/a | n/a | n/a | unsupported |
| mvmbytecode VM | 7 | 409 µs | 1.02 s | 1.05 s | 13.6 ms | 1.69 GiB | 3.65× | OK |
| yaegiAST walker | 7 | 424 µs | 1.17 s | 1.19 s | 18.5 ms | 1.69 GiB | 4.17× | OK |
Workload & symmetry rules
Workload
Build a 26-way trie from 50,000 lowercase ASCII words. Run 10,000 random prefix-existence queries. Print the count of hits.
Symmetry rules
- Trie nodes carry a fixed 26-slot child array (no map).
- Manual recursion or explicit stack.
Source code
pipit / Go
pipit_source.gonative Go
native_main.goCPython / PyPy
cpython.pytengo
script.tengo