Performance FAQ โ
Is it fast enough for keystroke parsing? โ
On the 80KB benchmark corpus (ReleaseFast): ~10 ms full parse, ~4โ16 ms incremental, ~1 ms traversal. Measure your grammar with zig build bench -Doptimize=ReleaseFast.
How do I verify reuse is working? โ
Read parser.reused_node_count after incremental parses โ sustained zero on small edits means your edits or states are defeating reuse; check the edit spans.
Does it allocate per node? โ
No. Nodes live in pools; handles are two words. Cursor moves and metadata reads allocate nothing.
Where do I report bottlenecks? โ
Profile first (Benchmarks), then open an issue with the corpus shape and numbers.
