Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Reduce the size of the pipe (#49270)
- Use the pipe itself as the synchronization object - Store the options instance as a way to reference shared settings - Added a field to PipeOptions for storing if the Pool is the ArrayPool implementation of the MemoryPool - Shrink PipeAwaitable in the common case - Move the ExecutionContext and SynchronizationContext into a typed called the SchedulingContext. These types are mostly used with async await and it's extremely rare to have to capture any of this state. - Shrink the size of PipeCompletion - Since completion callbacks are deprecated they are rarely set. We remove the pool and the other fields and just store a list (which should be rarely used now). - Reduce the default segment pool size to 4 items = 16K buffered - The original size was optimized to avoid pool resizes but we need to balance idle memory and the potential resize cost of the resize.
- Loading branch information