-
Notifications
You must be signed in to change notification settings - Fork 10.3k
Add named pipes microbenchmark #46472
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
Conversation
Results:
Basically the same. |
Is it because there's no backpressure? I guess the ConnectionDispatcher always queues to the threadpool immediately after the connection is accepted. When we add connection backpressure this will be a bottleneck. |
One accept loop in
Where is connection backpressure coming from? Who is experiencing the bottleneck? The OS isn't blocking named pipe clients from connecting while this is going on. It has its own accept queue. The purpose of this code is just for the transport to provide connections to the AcceptAsync caller as quickly as possible. Putting things connections on and taking them off the channel isn't a bottleneck. |
I mean when we add it. This is a long standing work item that we haven’t don’t yet. The idea is to throttle accepts at the dispatcher level m (probably using the rate limiting APIs). |
Follow up to #46259. Previous measurements were done in a unit test. BenchmarkDotNet gives a clearer picture of the improvement.
Results: