WCF looking good
Been using WCF on an application for the last few weeks. The use case is point-to-point delivery of high-speed data. I’m using binary encoding with net tcp bindings. The messages are reasonably large, and complex (using strongly-typed Dictionaries etc). The gating factor on performance seems to be server CPU; I’m finding I can get around 10,000 messages per second per CPU. So, with a decent quad proc server, I can serve around 40,000 messages per second. It’s not going to compete with 29 West anytime soon, but it’s more than adequate for some fairly high performance application scenarios. And the programming model is an absolute pleasure.


July 9th, 2007 at 5:48 pm
Are you using WCF in some sort of Pub/Sub implementation? Or are you just using Request/Reply?
July 9th, 2007 at 6:48 pm
I am using Request / Reply to allow the client to specify the ’subscription’, and then using WCF callbacks to deliver the data.
July 10th, 2007 at 8:48 am
Ok cool, I was wondering if you were using the callbacks. Thanks for the info.
July 10th, 2007 at 10:52 am
Have you done any profiling on the server to see what part of WCF or your code is taking so much CPU? I’m curious how much overhead WCF adds to the messaging stack. What’s the peak bandwidth taken up by 40,000 messages a second? I suspect you are chunking your messages to get that kind of speed.
July 10th, 2007 at 2:50 pm
TJ - have you used the Pub/Sub implementation? If so what did you find?
July 10th, 2007 at 4:35 pm
Dan: there is no formal Pub/Sub implementation in WCF, do you mean Juval’s implementation?
David: I have not had a chance to do that profiling, although I would certainly be interested to see the results. As I recall it was able to fill about half a 100Mbit link before the cpu saturated. I’ll blog on a new thread if I get a chance to do some further analysis.
July 10th, 2007 at 5:33 pm
Daniel: No I have not, I was just wondering because thats the type of messaging subsystem I would like to use. I have seen some dev’s use the callback functionality to implement pub/sub. I was just wondering if was being used in the wild.
It doesn’t really seem like MS has an answer to JMS pub/sub. Unless you build a layer on top of WCF.
TJ
July 11th, 2007 at 4:30 pm
TJ, I would definitely suggest checking out Juval Lowy’s reference pub-sub implementation. You can download it here (look for Publish-Subscribe Framework):
http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=5&tabid=11
September 2nd, 2007 at 4:21 pm
[…] Ce témoignage de Thomson Financial met en exergue les qualités intrinsèques de Windows Communication Foundation : Flexibilité + Performances, tout en permettant à Thomson Financial de refondre son application selon des principes SOA dans une démarche Bottom-Up. C’est sur ce point que la technologie WCF séduit le plus : réussir à allier flexibilité (de la sérialisation (SOAP, JSON…) , de l’encodage sur le transport (Text/Binaire), du monitoring (File system, Listeners) et performances (meilleures en .Net - .Net que le .Net Remoting historique, meilleures en SOAP/HTTP que les stacks Java - stocktrader). Lab49 annonce des performances de l’ordre de 40.000 messages/secondes, avec un encode binaire sur TCP. Quand on sait que la fliexibilité de WCF permet de servir les mêmes messages sous format SOAP/HTTP et sans toucher au code initial ! Depuis plusieurs mois, je travaille avec plusieurs architectes sur le secteur Finances sur des projets de ce type. Nous constatons avec succès que WCF parvient à réalise un doux rêve de l’architecte : une liberté totale au déploiement avec des performances stupéfiantes, sans coût supplémentaire de développement.This post originated from and is provided by the MSDN Blogs RSS feed. The original post of the article can be found here. […]