Adding a performance counter

Some times you need to measure the value of something while running the application.
Using a logger is not comfortable, since you don’t want to monitor gazillion rows of values.
The solution: create a performance counter and use Perfmon.exe to view it while the application is running.

Here is a code for creating a counter:

private PerformanceCounter CreatePerformanceCounter(){        string categoryName = "My Category";

    if ( !PerformanceCounterCategory.Exists(categoryName) )    {        CounterCreationDataCollection CCDC = new CounterCreationDataCollection();

        // Add the counter.        CounterCreationData myCounter = new CounterCreationData();        myCounter.CounterType = PerformanceCounterType.NumberOfItems64;        myCounter.CounterName = "My Counter";        CCDC.Add(myCounter);

        // Create the category.        PerformanceCounterCategory.Create("categoryName", "This is my cateogory", CCDC);    }

    PerformanceCounter result = new PerformanceCounter(categoryName, "My Counter", false);}

Note: You’ll need an administrator account to create a new category, but once it’s there any account it OK.

Category: Performance, Useful .Net classes


Leave a Reply