Lorenzo
Lorenzo

Reputation: 29427

How do you profile your web site/web application?

This is to collect from the experience that the community has done information on the aspect of Profiling web Application.

Some years ago I worked at a very large project in C++/Java with the a CORBA ORB and we were using Rational Purify/CodeCoverage to instrument, detect memory leaks and discover bottlenecks on server code. From that time I did not have any experience on using tools like that on the .NET platform either working on pure c# or with a web application

I know this is a very big topic. Some information I have are from the book "Performance Analysis for Java WebSites", who is fo the Java platform and reference tools for that platform but ises an approach that is transferable and so the core ideas apply generally.

Upvotes: 9

Views: 1536

Answers (3)

arielf
arielf

Reputation: 5952

Profiling a multi-tiered, distributed, web application (server side) shows a high level approach (profiling on the URL level) that is:

  • platform and language independent
  • completely non invasive
  • gives a high-level picture of where your application is spending most of its time

The idea is to use existing web logs and convert them into a "one-picture is worth a 1000 words" kind of chart.

This approach may not be sufficient for use-cases requiring more fine-level detail, but it helped me personally, and may be worth exploring.

Upvotes: 0

Chris
Chris

Reputation: 28064

I use dotTrace to profile while using jMeter to simulate traffic. I have found dotTrace to be far better integrated than ANTS, and generally the reports more useful.

Upvotes: 1

danielfishr
danielfishr

Reputation: 879

As a free load testing solution I have used Pylot. I am sure there are better paid solutions if you have a budget. If you can estimate traffic, this is the tool whose output you evaluate the scalabiltiy of your project against. Using the the asp.net output cache can improve your site performance under load significantly, so try this if your page views a second are less than you require.

For optimising your client side rendering speed use:

  • YSlow firefox plug-in
  • PageSpeed firefox plug-in by Google
  • Firebug firefox plug-in to check the number of HTTP requests are not excessive and js/css resources are being cached etc.

If developing a asp.net web forms app you can enable page tracing by modifying your page directive so it contains

<%@ Page Trace="true">

This will help you find controls which take longer to render.

If you have an issue with server side code being slow I have found it is almost always the database causing the issue. You need to check for SQL which is slow to return a result; if you find any you need to look at applying new indexes to your tables. If your app is too chatty with the database you need to look at reducing the number of calls to the database. To find these problems you can use SQL Server Profiler; this comes bundled with SQL Server 2005/2008 Developer edition.

If you have the budget, you definitely want to check of out Redgate ANTS Performance Profiler for profiling your server side code.

Upvotes: 5

Related Questions