aspnetcore/test/Microsoft.AspNetCore.Server...
David Fowler c48113ad80 Refactoring and of FrameConnection and Frame (#1816)
* Refactoring and of FrameConnection and Frame
- Building on top of the last refactoring of FrameConnection, this change aims to clean up
the communication between the Frame and FrameConnection by removing some concepts and
being consistent about the communication between Frame and FrameConnection with or without
connection adapters. Changes include:
- Removing ConnectionLifetimeControl, ISocketOutput, StreamSocketOutput
- Moving more initialization of the frame to FrameConnection after the pipes
are setup
- OutputProducer communicates cancellation via the IPipeWriter instead of the output's IPipeReader.
- Frame always communicates via the pipes and that communications flows through the layers to the transport.
This means that each 1/2 of the adapted pipeline handles closing the right side of the transport at the
right time, propagating exceptions as necessary.
- This is how the flow looks now:
            ->                        ->
[transport]     [connection adapters]     [frame]
            <-                        <-
- Transports need to handle a ConnectionAbortedException on the output as a signal to stop
writing and end the connection. This will no longer try to drain the output but will just stop
writing and end the response immediately.
- Remove frame.Abort when cancellation on Write fails.
- Unify the connection shutdown logic
- Dispose 1/2 initialized connection adapters

#1815
2017-05-08 20:44:13 -07:00
..
Mocks
configs
DotSegmentRemovalBenchmark.cs
ErrorUtilities.cs
FrameFeatureCollection.cs
FrameParsingOverheadBenchmark.cs Simplify connection lifetime control flow (#1776) 2017-05-05 16:11:01 -07:00
FrameWritingBenchmark.cs Refactoring and of FrameConnection and Frame (#1816) 2017-05-08 20:44:13 -07:00
KestrelHttpParserBenchmark.cs
KnownStringsBenchmark.cs
Microsoft.AspNetCore.Server.Kestrel.Performance.csproj Refactoring and of FrameConnection and Frame (#1816) 2017-05-08 20:44:13 -07:00
PipeThroughputBenchmark.cs
Program.cs
Readme.md
RequestParsingBenchmark.cs Simplify connection lifetime control flow (#1776) 2017-05-05 16:11:01 -07:00
RequestParsingData.cs
ResponseHeaderCollectionBenchmark.cs Simplify connection lifetime control flow (#1776) 2017-05-05 16:11:01 -07:00
ResponseHeadersWritingBenchmark.cs Refactoring and of FrameConnection and Frame (#1816) 2017-05-08 20:44:13 -07:00
StringUtilitiesBenchmark.cs

Readme.md

Compile the solution in Release mode (so Kestrel is available in release)

To run a specific benchmark add it as parameter

dotnet run -c Release RequestParsing

To run all use All as parameter

dotnet run -c Release All

Using no parameter will list all available benchmarks