From d3e8fb61783c6752779cce4d9779351f518fbd32 Mon Sep 17 00:00:00 2001 From: Diogo Martins Date: Tue, 3 Nov 2026 19:46:54 +0000 Subject: [PATCH] Benchmark TryParseRequestHeader instead of the obsolete entry points The harness called TryExtractFullHeaderROM and TryExtractFullHeaderValidated, obsolete since #81, and cleared the request before each call, which the parser does itself since #76. The multi-segment comment now says that only the header block is linearized (#86). --- Benchmarks/Program.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Benchmarks/Program.cs b/Benchmarks/Program.cs index ca71dc4..b4c6413 100644 --- a/Benchmarks/Program.cs +++ b/Benchmarks/Program.cs @@ -39,17 +39,17 @@ { var rom = (ReadOnlyMemory)bytes; long it = Iters(bytes.Length); - double glyph = Best(it, () => { managedRequest.Clear(); var r = rom; UltraHardenedParser.TryExtractFullHeaderROM(ref r, managedRequest, in managedLimits, out _); }); + double glyph = Best(it, () => { var r = rom; UltraHardenedParser.TryParseRequestHeader(ref r, managedRequest, in managedLimits, out _); }); return glyph; }); -// ---- multi-segment request parsing (3 segments, linearized per request, then parsed) ---- +// ---- multi-segment request parsing (3 segments; the parser linearizes only the header block) ---- Console.WriteLine("\nRequest header parsing — multi-segment"); Table(requests, (label, bytes) => { var seq = ThreeSegments(bytes); long it = Iters(bytes.Length); - double glyph = Best(it, () => { managedRequest.Clear(); var s = seq; UltraHardenedParser.TryExtractFullHeaderValidated(ref s, managedRequest, in managedLimits, out _); }); + double glyph = Best(it, () => { var s = seq; UltraHardenedParser.TryParseRequestHeader(ref s, managedRequest, in managedLimits, out _); }); return glyph; });