Game of Life
200×200 Conway's Game of Life for 1,000 generations on a wrap-around grid.
Compile time · median (cold)
Full statistics
| Runner | N | Compile | Runtime | P95 | Stddev | RSS | vs piko | Status |
|---|---|---|---|---|---|---|---|---|
| Native Gocompiled | 10 | 181 ms | 97.0 ms | 104 ms | 9.86 ms | 69 MiB | 112× | OK |
| Piko interpbytecode VM | 10 | 1.61 ms | 4.64 s | 4.70 s | 30.9 ms | 106 MiB | 1.00× | OK |
| CPython 3.13bytecode VM | 10 | 341 µs | 5.99 s | 6.06 s | 72.2 ms | n/a | 0.21× | OK |
| PyPy 7.3tracing JIT | 10 | 292 µs | 151 ms | 155 ms | 2.17 ms | n/a | 0.18× | OK |
| tengobytecode VM | 10 | 253 µs | 10.7 s | 10.8 s | 89.3 ms | 2.39 GiB | 0.16× | OK |
| scriggobytecode VM | 10 | 443 µs | 6.67 s | 6.77 s | 92.2 ms | 82 MiB | 0.27× | OK |
| mvmbytecode VM | 0 | n/a | n/a | n/a | n/a | n/a | n/a | unsupported |
| yaegiAST walker | 10 | 334 µs | 10.5 s | 10.7 s | 95.2 ms | 71 MiB | 0.21× | 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
piko / Go
piko_source.gonative Go
native_main.goCPython / PyPy
cpython.pytengo
script.tengo