views:

708

answers:

7

I am tasked with improving the performance of a particular page of the website that has an extremely high response time as reported by google analytics.

Doing a few google searches reveals a product that came with VS2003 called ACT (Application Center Test) that did load testing. This doesn't seem to be distributed any longer

I'd like to be able to get a baseline test of this page before I try to optimize it, so I can see what my changes are doing.

Profiling applications such as dotTrace from Jetbrains may play into it and I have already isolated some operations that are taking a while within the page using trace.

What are the best practices and tools surrounding performance and load testing? I'm mainly looking to be able to see results not how to accomplish them.

+1  A: 

Take a look at the ANTS Profiler from Red Gate. I use a whole slew of the Red Gate products and am very satisfied!

Mark Brittingham
+1  A: 

There are a lot of different paths you can go down. Assuming a MS environment you can leverage some of the team system tools such as MS Team Tester to record tests and perform load testing against your site. These can be set to run as part of an automated build process.

A list of tools is located at: http://www.softwareqatest.com/qatweb1.html#LOAD

Now, you might start off simple. In this case install two firefox plugins: Firebug and YSlow for Firebug. These will give stats and point out issues such as page size, the number of requests made to get the page, etc. They will also make recommendations on some things to fix.

Further, you can use unit tests to execute a lot of the code behind to see what functions are hurting you.

Chris Lively
A: 

You can do all sorts of testing if u have full MS dev system with TFS and Visual Studio Team Edition. Based on what I see here

Perpetualcoder
A: 

I recently had a nice .Net bug which was running rampant. This tool sorta helped, but in your case, I could see it working nicely..

http://www.jetbrains.com/profiler/

madcolor
A: 

Most of the time we've used WCAT from Microsoft. If your searches where bring up ACT then this is probably the tool you want to grab if you are looking for requests per second and the such. Mike Volodarsky has a good point pointing the way on how to grab this.

We use it quite a bit internally when it comes to testing our network infrastructure or new web application and it is incredibly flexible once you get going with it. And it seems every demo Microsoft has done for us with new web tech they seem to be busting out WCAT to show off the improvements.

It's command line driven so it's kinda old school, but if you want power and customization it can't be beat. Especially for free.

Now, we use DotTrace also on our own applications when trying to track down performance issues, and the RedGate tools are also nice. I'd definitely recommend a combination of the two of them. They both give you some pretty solid numbers to track down which part of your app is the slowdown and I can't imagine life without DotTrace.

PhilCo
+3  A: 

Here is an article showing how to profile using VSTS profiler.

If broken it is, fix it you should

Also apart from all the tools why not try enabling the "Health Monitoring" feature of asp.net.

It provides some good information for analysis. It emits out essential information related to process, memory, diskusage, counters etc. HM with VSTS loadtesting gives you a good platform for analysis.

Check out the below link..

How to configure HealthMonitoring?

Also, for reference to some checklist have a look at the following rules/tips from yahoo....

High performance website rules/tips

HttpWatch is also a good tool to for identifying specific performance issues.

HttpWatch - Link

Also have a look at some of the tips here.. 10 ASP.NET Performance and Scalability secret

rajesh pillai
httpwatch: http://www.httpwatch.com/
Martin
A: 

Visual Studio Test Edition (2008 or 2010) comes with a very good load testing component for ASP.NET apps. It allows you to get statistics for all the perfmon stats for a server (from basics like CPU and disk waits to garbage collection and SQL locks)

Create a load test for the page and run it, storing the stats in a database for the base line. Subsequent runs can be compared.

Nat