We need good benchmarking, and Perl's timethese is probably too coarse. But it's also the only solution we have so far that is cross-languages.
As an example, related to whether we should sit pull parsers on top of pull parsers (with plenty of warnings removed): ./_build/g9d/etc/bench.pl -k -g calc [ %d api.push-pull=both ] 0. %define api.push-pull both 1. 2020-03-21 18:21:17 Run on (8 X 2900 MHz CPU s) CPU Caches: L1 Data 32K (x4) L1 Instruction 32K (x4) L2 Unified 262K (x4) L3 Unified 8388K (x1) -------------------------------------------------- Benchmark Time CPU Iterations -------------------------------------------------- BM_yy0 31833 ns 31821 ns 21636 BM_yy1 31054 ns 31025 ns 21684 It should also be helpful to Valentin to compare glr.c to glr.cc for instance. Akim Demaille (4): bench: die clearly on incorrect --grammar arguments bench: simplify the calc grammar bench: better error messages on invalid input bench: calc: add support for google benchmark etc/bench.pl.in | 200 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 156 insertions(+), 44 deletions(-) -- 2.25.1
