Profiling your .Net Applications Part - 1
Profiling your .Net Applications Part - 1
Profiling is the act of investigating the applications performance by collecting data about the application while the application is running. Generally there are two cases for profiling, profiling for memory and profiling for performance.
Profiling for Memory:
When you want to know which part of the code is consuming more memory, or in the case of .Net you may want to observe how frequently GC is running and how many objects were sweeped or how many objects were not sweeped etc…
Profiling for Performance:
This is my favourite area, you may want to determine what part of the code is slowest or which method is called the highest times / which method consumed the most time, thereby you can optimize that one particular method and see a huge performance benefit.
Now lets see what tools are available for .Net developers
1) CLRProfiler A free Memory profiler provided by Microsoft.
How To: Use CLR Profiler
We will get into more details of CLR Profiler in a later article.
PerfMon
Do you know Windows OS comes with PerfMon - Performance Monitor which is a very very nice tool for monitoring performance.
More details of PerfMon in a later article
AQTime - A commercial profiler, Iam not going to delve into this tool.
EQATEC Profiler - A free profiler for .Net Framework. It is available as a Basic version and Full version also. The good thing is both are free.
JetBrains dotTrace Profiler - A commercial profiler from JetBrains. Iam not going to delve into this.
Mercury Diagnostics Profiler - a commercial Profiler offered by HP.
NProf - a free profiler, my favorite, lets delve into this later.
SpeedTrace - a commercial Profiler, no we are not going into this.
Prof-It for C# - a very interesting profiler, a free version is available. We will delve into this later.
GlowCode - commercial profiler.
YourKit Profiler - commercial profiler.
If I forgot to include any profiler please let me know through comments and I will add it to the list. In upcoming articles lets take a look at CLRProfiler, Perfmon, NProf and Prof-It for C#. By the way stay tuned for a comparison of all these profilers both commercial as well as free tools.
Profiling your .Net Applications Part - 1
Update:
I received a comment, the comment is:
Two comments on the EQATEC Profiler:
There is no “commercial†version - the full version is also free.
The profiler is not just for Compact Framework apps, but can profile full .NET applications too. No code changes are needed, just run it against your binary app.
Tags: .Net
May 24th, 2008 at 5:11 pm
Two comments on the EQATEC Profiler:
There is no “commercial” version - the full version is also free.
The profiler is not just for Compact Framework apps, but can profile full .NET applications too. No code changes are needed, just run it against your binary app.
June 9th, 2008 at 5:12 am
[...] Posts: Profiling your .Net Applications Part - 1 Types in .Net - Part 1 Type in .Net - Part [...]