Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pool SocketSenders #30771

Merged
merged 8 commits into from
Mar 16, 2021
Merged

Pool SocketSenders #30771

merged 8 commits into from
Mar 16, 2021

Commits on Mar 9, 2021

  1. Pool SocketSenders

    - SocketAsyncEventArgs have lots of state on them and as a result are quite big (~350) bytes at runtime. We can pool these since sends are usually very fast and we can reduce the per connection overhead as a result.
    - We also allocate one per IOQueue to reduce contention.
    - Fixed buffer list management
    - Disposed pool when the transport is disposed
    - Added project to slnf so running tests in VS was possible
    - Clear the buffer and buffer list before returning to the pool
    - This cleans up dumps as the pooled senders don't see references to buffers
    while pooled in the queue
    davidfowl committed Mar 9, 2021
    Configuration menu
    Copy the full SHA
    dc0b496 View commit details
    Browse the repository at this point in the history

Commits on Mar 10, 2021

  1. Update src/Servers/Kestrel/Transport.Sockets/src/Internal/SocketConne…

    …ction.cs
    
    Co-authored-by: James Newton-King <james@newtonking.com>
    davidfowl and JamesNK committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    f4e75d2 View commit details
    Browse the repository at this point in the history
  2. PR feedback

    davidfowl committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    1607af2 View commit details
    Browse the repository at this point in the history

Commits on Mar 13, 2021

  1. PR feedback

    davidfowl committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    5067db4 View commit details
    Browse the repository at this point in the history

Commits on Mar 16, 2021

  1. PR Feedback

    - Keep track of items in the pool separately from the queue count.
    - Clear the buffer only if the buffer list is null
    davidfowl committed Mar 16, 2021
    Configuration menu
    Copy the full SHA
    11b8842 View commit details
    Browse the repository at this point in the history
  2. Update src/Servers/Kestrel/Transport.Sockets/src/Client/SocketConnect…

    …ionFactory.cs
    
    Co-authored-by: Brennan <brecon@microsoft.com>
    halter73 and BrennanConroy committed Mar 16, 2021
    Configuration menu
    Copy the full SHA
    fe2d74c View commit details
    Browse the repository at this point in the history
  3. More PR feedback

    davidfowl committed Mar 16, 2021
    Configuration menu
    Copy the full SHA
    704d9bc View commit details
    Browse the repository at this point in the history
  4. Update src/Servers/Kestrel/Transport.Sockets/src/Internal/SocketSende…

    …rPool.cs
    
    Co-authored-by: Stephen Halter <halter73@gmail.com>
    davidfowl and halter73 committed Mar 16, 2021
    Configuration menu
    Copy the full SHA
    b5aca36 View commit details
    Browse the repository at this point in the history