views:

85

answers:

6

HI all, I would like to know what are the best practices to improve the performance of the asp.net website? Is there any tool to do the profiling? I am aware that Ant Profiler can be used, but its not free downloadable.

I am using CDN, caching etc.

+2  A: 

Eqatec

http://stackoverflow.com/questions/308816/any-good-free-net-profiler

If you have a specific sort of performance problem you are trying to solve that might help. Is it 1st page load times? Data tier load times? The time it takes to render the page? Slow post backs? Page sizes are tool large? What expensive to create objects do you have? Different sorts of objects require different sorts of caching.

MatthewMartin
+1  A: 

I'd start by looking at anything you are doing with your database. In my experience that is where most performance issues come from... Take a look at Sql Server Profiler and the Database Tuning Advisor.

You can look at the Microsoft Application Center Test also, but i'm not sure if it comes free or not.

Abe Miessler
+1  A: 

This article provides a good overview of how performance could be improved in ASP.NET site.

Darin Dimitrov
+1  A: 

You might review these MSDN Patterns & Practices articles:

Improving .NET Application Performance and Scalability

Chapter 3 Design Guidelines for Application Performance

Chapter 4 Architecture and Design Review of a .NET Application for Performance and Scalability

Chapter 6 Improving ASP.NET Performance

In my experience, Abe is generally correct, that the best place to start is with the database.

DOK
+1  A: 

Start by using ASP.NET's built-in Tracing. This will give you a general idea of where you're spending your time (assuming it's a server-side issue). You'll likely see one page event taking more time than the others. From inside the event, add detailed tracing data to your trace. Time how long each call in your event takes. Again, one call will likely stand out. Keep following the calls down until you find the stinker. It's likely you'll end up at a database or web service call. Isolate the offending call outside of your application and use the same process - drilling down to a specific, slow action.

Don't bother with a profiler until you know where to look.

Corbin March
+1  A: 

Having taken some of the ideas above into account, to improve performance try web page caching http://msdn.microsoft.com/en-us/library/06bh14hk.aspx

For timing responses I recommend

  • WAST (Microsoft Web Application stress tool)
  • JMeter (Excellent general-purpose stress tool)
ubuntuguy