Game of Life
200×200 Conway's Game of Life for 1,000 generations on a wrap-around grid.
Runtime · median per inner-loop window
Full statistics
| Runner | N | Compile | Runtime | P95 | Stddev | RSS | vs pipit | Status |
|---|---|---|---|---|---|---|---|---|
| Native Gocompiled | 7 | 108 ms | 80.6 ms | 82.2 ms | 1.08 ms | 1.62 GiB | 0.05× | OK |
| Pipitbytecode VM | 7 | 1.42 ms | 1.78 s | 1.82 s | 12.3 ms | 591 MiB | 1.00× | OK |
| CPython 3.14bytecode VM | 7 | 418 µs | 5.95 s | 6.13 s | 79.6 ms | n/a | 3.34× | OK |
| PyPy 7.3tracing JIT | 7 | 312 µs | 152 ms | 153 ms | 611 µs | n/a | 0.09× | OK |
| tengobytecode VM | 7 | 268 µs | 10.2 s | 10.4 s | 61.7 ms | 1.69 GiB | 5.72× | OK |
| scriggobytecode VM | 7 | 467 µs | 6.90 s | 6.93 s | 50.4 ms | 1.69 GiB | 3.87× | OK |
| mvmbytecode VM | 7 | 423 µs | 9.01 s | 9.43 s | 175 ms | 1.69 GiB | 5.05× | OK |
| yaegiAST walker | 7 | 378 µs | 10.3 s | 10.4 s | 47.1 ms | 1.69 GiB | 5.77× | OK |
Workload & symmetry rules
Workload
Double-buffered 200×200 cell grid. Wrap-around boundary. 1,000 generations from a glider gun start state. Print the final live-cell count.
Symmetry rules
- Two flat byte arrays, no numpy / fancy slicing.
- Neighbour sum unrolled by hand.
Source code
pipit / Go
pipit_source.gonative Go
native_main.goCPython / PyPy
cpython.pytengo
script.tengo