Closed tomas-langer closed 2 weeks ago
Relevant improvements (JMH tests run on my machine):
==================== Http1ParsingJmhTest.longHeader (+26.30%)
Baseline ████████ 5122185.288 ops/s
Current ███████████ 6950011.833 ops/s
==================== Http1ParsingJmhTest.multiBuffer (+20.60%)
Baseline █████████████████████ 13280652.339 ops/s
Current ██████████████████████████ 16726444.654 ops/s
==================== Http1ParsingJmhTest.singleBuffer (+27.63%)
Baseline ██████████████████████ 14260739.248 ops/s
Current ███████████████████████████████ 19704223.620 ops/s
==================== HttpPrologueParsingJmhTest.techEmpower (+8.27%)
Baseline ████████████████████████████████████████████████████████████████████████████████████████████ 58250706.875 ops/s
Current ████████████████████████████████████████████████████████████████████████████████████████████████████ 63503835.499 ops/s
Description
Improved parsing of HTTP prologue and headers.
Connection
header has optimized processing, as it is always used by Helidon webserver, and original code always had to useLazyString.stripOws
which was sub-optimal; new version does a fast check forclose
andkeep-alive
connection options and bypasses thisstripOws
method is only called when the header is requested by user (or when validation is turned on)