-
Notifications
You must be signed in to change notification settings - Fork 10.6k
Description
I am currently working on improving our results in the JSON TechEmpower benchmark.
We got to the point, where everything was already tuned at least once and even 1% matters.
The majority of time is spent on necessary work like sending & receiving messages, epoll & thread pool scheduling that are hard or impossible to optimize any further.
For the JSON Platform benchmark, we spent 5% of the time on parsing headers.
If I remove it, I get something around 40-50k RPS gain.
@GrabYourPitchforks is there any chance that you could take a look at the parsing logic and see if there are any possibilities to optimize it any further? I know that you have a LOT of expertise in the low-level tuning of text operations.
I've prepared a copy of the TE logic and encapsulated it into a benchmark that can be run by doing the following:
git clone https://github.com/adamsitnik/aspnetcore.git parsing
cd parsing
git checkout techEmpowerParsing
./build.sh
./.dotnet/dotnet run -c Release -f netcoreapp5.0 --filter TechEmpowerHttpParserBenchmark --project ./src/Servers/Kestrel/perf/Kestrel.Performance/Microsoft.AspNetCore.Server.Kestrel.Performance.csproj --cli ./.dotnet/dotnet 