WCF Performance Benchmarks

10. August 2007 10:00

Whenever I discuss WCF with someone that isn’t very familiar with it, one of the first few questions they ask is typically about performance.  Although I have personally witnessed that it is significantly faster than the previous distributed technology stacks, there has been a considerable lack of a performance benchmarks that provide actual numbers.  Earlier this year, there was a whitepaper published WCF performance to earlier Microsoft distributed technologies, but it received some criticism due to some of the questionable comparisons.  For example, WCF was pitted against WSE 2.0 rather than WSE 3.0.  Fortunately, Microsoft has published some more material to prove WCF’s performance superiority.

Yesterday, they released the .NET Stock Trader Application, and it is very cool!  This is essentially a “real world” application they built as a benchmark toolkit.  It is similar to the IBM WebSphere Trade 6.1, which is an application built on IBM WebSphere A Application Server 6.1 to provide benchmarks for that platform.  The .NET application is supposedly interoperable with WebSphere Trade 6.1.  This allows for some interesting benchmark comparisons between the two platforms.  You can view the PDF document that contains the results here.  It provides what seems to be a fair comparison among several different configurations.  The performance difference was pretty amazing.  Under certain configurations, WCF achieved over 400% better performance than IBM WebSphere.  I still haven’t read the entire document.  It is pretty thorough coming in at 95 pages in length.

The source code is available as well.  There is moderate amount of code involved, and I still haven’t reviewed a lot of it.  However, I would like to point out one thing that I really liked.  The OrderProcessorAsyncClient provides a good example of how to build one seriously optimized consumer of a WCF service for the purposes of performance and scalability.  Admittedly, some of it could use some polishing, but it is an excellent start for getting the general idea of the involved concepts.  If you work in an environment that demands high performance and scalability, I definitely recommend you review that particular project for exposure to the underlying concepts.  Even if you aren’t in that sort of environment, this is still good information to have at your disposal to understand what you can do to improve performance the perspective of the service consumer.

Enjoy!

Comments are closed

About Me

I'm a passionate software developer and advocate of the Microsoft .NET platform.  In my opinion, software development is a craft that necessitates a conscious effort to continually improve your skills rather than falling into the trap of complacency.  I was also awarded as a Microsoft MVP in Connected Systems in 2008, 2009, and 2010.


Can’t code withoutThe best C# & VB.NET refactoring plugin for Visual Studio
Follow jeff_barnes on Twitter

View Jeff Barnes's profile on LinkedIn

 

Shared Items

Disclaimer

Anything you read or see on this site is solely based on my own thoughts.  The material on this site does not necessarily reflect the views of my employer or anyone else.  In other words, I don't speak for anyone other than myself.  So, don't assume I am the official spokesperson for anyone.