Immediately after the key note, I ran to the lunch session of Nicholas Allen.
I’m a close follower of his blog, because the guy knows so much about the inner workings of WCF. I’ve used his info lots of times when writing WCF stuff.
This talk was all about performance. About what bottlenecks there are at which level, and how to mitigate them.
He explained this by using a Push Pull principle. All communication flowing over the WCF stack will have several parts pushing or pulling data. Performance has a lot to do with optimizing the manner these parts interact.
When mapping this principle on WCF you can see parts that push and then parts that pull. Whenever a switch between the two takes place, you have an interesting performance case. Because at that point, message pumping and/or buffering will take place.
All these points have all sorts of configurable performance knobs to tweak and tune. The above gives us a much clearer insight of what you are indeed tweaking/tuning so you can understand what the knob does and what consequence it may have.
So when looking at the message pump of the server side part of a binding, you will see the following:
When zooming in a bit more, you soon get a lot of detail (and you might get lost!):
An important lesson you can take out of this last screenshot, is the fact that you can see that binding to a thread takes place in the 6th part of the pump. All that is before that is a potential performance issue. So watch out with your authentication providers and message inspectors!!
Be the first to rate this post
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5