Performance Counters

Performance counters helps you monitor the status of a given application, and identify bottlenecks. You can view performance counters in the Computer Management tool, by selecting the Performance (or Reliability &Performance) tab.

To access performance counters programmatically, you’ll use the PerformanceCounter class. To read from an existing counter, use the following method:

PerformanceCounter pc = new PerformanceCounter(“Processor”, “% Processor Time”, “_Total”);
pc.NextValue();
Thread.Sleep(1000);
Console.WriteLine(pc.NextValue);


It is important to call the NextValue method (which returns the change between two calls) for the first time, since it resets the counter, and starts to collect data from it.

You can add your custom performance counters, too. To do so, use the overloaded PerformanceCounterCategory.Create method. With it, you can create a new performance counter category, and add instances to it.

To modify the values of performance counters, you have four methods:

  • RawValue: assign a long to the counter. Beware: this method isn’t thread safe, however, it’s five times faster than the others.
  • Increment: increments the value by one. Creates a lock during the incrementation, so it’s thread safe.
  • Decrement: decrements the value by one. Thread safe.
  • IncrementBy(long): increments the value by the specified long. Thread safe.

 

Further Readings

PerformanceCounter Class
PerformanceCounterCategory Class

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s