From 253381c52099602a7b8b3df73d89941a63fd9e5e Mon Sep 17 00:00:00 2001 From: Okiki Ojo Date: Sat, 25 Apr 2026 21:32:24 -0400 Subject: [PATCH] bench(parser): add diagnostics benchmarks for pathological and synthetic articles Signed-off-by: Okiki Ojo --- parse_bench.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/parse_bench.ts b/parse_bench.ts index 8d9c71c..9d55f19 100644 --- a/parse_bench.ts +++ b/parse_bench.ts @@ -10,6 +10,8 @@ import { bench, do_not_optimize, run, summary } from 'npm:mitata'; import { cycleInputs, drainStatelessLayeredWorkflow, + drainStatelessParseStrictWithDiagnostics, + drainStatelessParseWithDiagnostics, SAME_SIZE_MIXED_TEXT, SAME_SIZE_PATHOLOGICAL_TEXT, SAME_SIZE_PLAIN_TEXT, @@ -33,6 +35,14 @@ summary(() => { do_not_optimize(parse(SAME_SIZE_PATHOLOGICAL_TEXT).children.length); }).gc('inner'); + bench('parseWithDiagnostics(): same-size pathological (~8 KB)', () => { + do_not_optimize(drainStatelessParseWithDiagnostics(SAME_SIZE_PATHOLOGICAL_TEXT)); + }).gc('inner'); + + bench('parseStrictWithDiagnostics(): same-size pathological (~8 KB)', () => { + do_not_optimize(drainStatelessParseStrictWithDiagnostics(SAME_SIZE_PATHOLOGICAL_TEXT)); + }).gc('inner'); + bench('consumer workflow: stateless outline -> events -> parse (mixed ~8 KB)', () => { do_not_optimize(drainStatelessLayeredWorkflow(SAME_SIZE_MIXED_TEXT)); }).gc('inner'); @@ -53,6 +63,14 @@ summary(() => { do_not_optimize(parse(nextSyntheticArticle()).children.length); }).gc('inner'); + bench('parseWithDiagnostics(): synthetic article (~35-45 KB)', () => { + do_not_optimize(drainStatelessParseWithDiagnostics(nextSyntheticArticle())); + }).gc('inner'); + + bench('parseStrictWithDiagnostics(): synthetic article (~35-45 KB)', () => { + do_not_optimize(drainStatelessParseStrictWithDiagnostics(nextSyntheticArticle())); + }).gc('inner'); + bench('consumer workflow: stateless outline -> events -> parse synthetic article (~35-45 KB)', () => { do_not_optimize(drainStatelessLayeredWorkflow(nextSyntheticArticle())); }).gc('inner'); -- 2.51.2