Saturday 11 June 2011

Performance analysis ...

For the past 8 months I have been working on improving the performance of applications and most of them happen to be ASP.NET web applications.Like they say, performance analysis and tuning is an iterative process. There are no shortcuts to improve the performance of an application.

Before I reveal a couple of tools that help developers identify performance bottlenecks in their applications, let me first talk about a few basic things - most often we (software developers) get feedback saying "the application is too slow (it sucks !)". Now, this is obviously not a welcome feedback. Novice developers might quickly say -"let's comment out all the time consuming code and the application is all set ;) " Well, that's not a bad idea, rather is an option at times.
Okay, what are the areas that a developer should concentrate on when we observe that applications are performing badly - here is the list:
  • Memory usage and leaks
  • CPU usage
  • Amount of I/O (writing to disk, database, sockets, etc)
  • Time to render the application UI (applicable to windows, web applications)

I tried the following tools and this post aims at helping those developers analysing and fine tuning the performance of applications:


Name of the tool

Purpose

VMMap


VMMap is a process virtual
and physical memory analysis utility. It shows a breakdown of a process's
committed virtual memory types as well as the amount of physical memory
(working set) assigned by the operating system to those types.

VMMap is the ideal tool
for developers wanting to understand and optimize their application's memory
resource usage.

MemProfiler

.NET Memory Profiler is a powerful tool for finding
memory leaks and optimizing the memory usage in programs written in C# or any
other .NET language.

It helps in identifying memory leaks by collecting
and comparing snapshots of .NET memory

ANTS Memory and Performance Profiler

Available as part of .NET Developer Bundle from RedGate, this is the most powerful and user-friendly
performance profiler that can profile the CPU and memory utilization of a
.NET application (including locally hosted WPF XBAP applications)

HTTP Watch, Firebug, YSlow

These tools help capture the time it takes to
download content from the web server to the client. These tools are
applicable when profiling web applications.

0 comments: