Click here to Skip to main content
Click here to Skip to main content

Application dashboard for tracking .NET application performance

, 26 Jul 2006
Rate this:
Please Sign up or sign in to vote.
Provides graphical feedback on the performance (memory usage, garbage collection, threads, exceptions, loaded classes) of a .NET application.

Sample Image - MemoryDashboard.jpg

Introduction

When a .NET application is running, it registers and updates a large number of performance counters which you can use to monitor the way your application is running - for example, how many threads is it using, what its memory usage is, how long it spends doing garbage collection, and so on.

You can read these properties using the .NET Framework built-in PerformaceCounter class. The attached code does just that and presents the results in a graphical format which you can have open and watching as you test your application - this can show up performance issues before the users get to see the problems.

How to use

To use the application, start your test application running, then fire up the application dashboard. Then select the menu File .. Settings and select your application from the drop down list of running .NET applications. You can also adjust the maximum and minimum values of each gauge so that it better matches your application.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Duncan Edwards Jones
Software Developer (Senior)
Ireland Ireland
C# / SQL Server developer
Microsoft MVP 2006, 2007
Visual Basic .NET
Follow on   Twitter   LinkedIn

Comments and Discussions

 
Generalsample Pinmemberparasuram-gpr20-Feb-09 20:44 
GeneralRe: sample PinmemberDuncan Edwards Jones8-Jul-09 6:40 
QuestionHow to use chart fx gauges PinmemberirafN7863-Aug-08 8:03 
AnswerRe: How to use chart fx gauges PinmemberDuncan Edwards Jones3-Aug-08 8:49 
GeneralRe: How to use chart fx gauges PinmemberirafN7863-Aug-08 23:16 
GeneralGood Idea PinmemberNice Life12-Oct-06 4:44 
GeneralRe: Good Idea PinmemberDuncan Edwards Jones13-Oct-06 2:52 
GeneralSome comments.... PinmemberJuergen Posny27-Jul-06 21:56 

I walked through your source, and I have some comments / questions for you:
 
1. Every time, the user changes settings, new instnces of the counters are made, and the old ones are unhandled in memory. I think, you trust the GC, but in this case, this can cause lots of problems, when your app is running longer time (PerformanceCounters are dealing with unmanaged code, and when garbage collection fails, you produce memory leaks), so it would be nice to 'Dispose' the counters correctly, when leaving the app.
Then you only should have one instance of the counters, and when changing settings (instance name), set the property 'InstanceName' of the counters.
 
1. Why do uou use public constants for the categories / names. When using one instance of the counters, there are no constants needed, just call the constructor once with the names....
 

GeneralRe: Some comments.... [modified] PinmemberDuncan Edwards Jones27-Jul-06 22:03 
QuestionToo many exceptions !!! [modified] PinmemberNigel Savidge27-Jul-06 3:06 
AnswerRe: Too many exceptions !!! PinmemberDuncan Edwards Jones27-Jul-06 3:46 
GeneralException on Application Close Pinmemberdgauerke27-Jul-06 3:05 
GeneralRe: Exception on Application Close PinmemberDuncan Edwards Jones27-Jul-06 3:50 
GeneralRe: Exception on Application Close PinmemberDuncan Edwards Jones28-Jul-06 1:41 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web01 | 2.8.140718.1 | Last Updated 27 Jul 2006
Article Copyright 2006 by Duncan Edwards Jones
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid