We have a standart WCF service for serving clients. It's a regular service with nothing special. There is a task for me to speed up the service. How can I do a monitoring of service slowness? I pretty sure there is the some tools for detecting bottlenecks in any program. I tried to use embed Visual Studio 2010 profiling tool but it's seems so complicated and not obvious for me so I have posted my question here.
-
You might try this - http://blogs.msdn.com/b/wenlong/archive/2007/12/04/profiling-wcf-wf-applications-with-vs-performance-profiler.aspx – Brent M. Spell Sep 16 '11 at 03:09
-
This is not a real question. It's just like 'how to find a bug in my program'. – Kirk Broadhurst Sep 16 '11 at 03:35
-
@Kirk Broadhurst I sure there is some basical things that can be applied to each project, like some fundamental truths that doesn't need any explanation. So I'm trying to get this truths. – kseen Sep 16 '11 at 04:05
-
You need to share some more info. Perhaps in doing that, you'll get some ideas on where to start. How "unspecial" is this service? Does it have database dependencies, service dependencies, file system dependencies? What does the infrastructure look like? REST or SOAP? – Jason Alati Sep 16 '11 at 03:12
-
@kseen - It should be 'how to find slow places in a .net program', because the WCF is only one component of your system. Which is the same as 'how to find slow places in a program', which is far too broad. – Kirk Broadhurst Sep 16 '11 at 04:16
2 Answers
I've used WCF Storm in the past to profile and help solve performance issues with WCF services.
You can get a trial version for 15 days or single license for around $100, but it will really help you diagnose your code.
Also check out this question "How to get started with WCF Performance profiling" for some more tips on profiling your services
In your service you could add some properties like StartTime, EndTime that are set at the entry/exit to your Method and transfered back in the object that your are delivering from your WCF and check that the service is actually taking a long time.
I was recently investigating a "slow" WCF that I'd written that was hosted at our provider, and it turned out to be that the methods themselves were lightning fast (using the above), but the initial time for startup of the service varied from 20sec - 2:10 because of some configuration option (that was not available through their remote management tools). Upon contacting the provider, the initial startup (when it has unloaded) reduced to under 3seconds. So you need to check where the slowpoint is.

- 4,730
- 2
- 35
- 61