PerformanceCounter.NextValue Method
.NET Framework 2.0
Obtains a counter sample and returns the calculated value for it.
Namespace: System.Diagnostics
Assembly: System (in system.dll)
Assembly: System (in system.dll)
Imports System Imports System.Collections Imports System.Collections.Specialized Imports System.Diagnostics Imports System.Runtime.InteropServices Imports Microsoft.VisualBasic Public Class App Public Shared Sub Main() CollectSamples() End Sub Private Shared Sub CollectSamples() Dim categoryName as String = "ElapsedTimeSampleCategory" Dim counterName as String = "ElapsedTimeSample" If Not PerformanceCounterCategory.Exists(categoryName) Then Dim CCDC As New CounterCreationDataCollection() ' Add the counter. Dim ETimeData As New CounterCreationData() ETimeData.CounterType = PerformanceCounterType.ElapsedTime ETimeData.CounterName = counterName CCDC.Add(ETimeData) ' Create the category. PerformanceCounterCategory.Create(categoryName, _ "Demonstrates ElapsedTime performance counter usage.", CCDC) Else Console.WriteLine("Category exists - {0}", categoryName) End If ' Create the counter. Dim PC As PerformanceCounter PC = New PerformanceCounter(categoryName, counterName, False) ' Initialize the counter. PC.RawValue = Stopwatch.GetTimestamp() Dim Start As DateTime = DateTime.Now ' Loop for the samples. Dim j As Integer For j = 0 To 99 ' Output the values. If j Mod 10 = 9 Then Console.WriteLine(("NextValue() = " _ + PC.NextValue().ToString())) Console.WriteLine(("Actual elapsed time = " _ + DateTime.Now.Subtract(Start).ToString())) OutputSample(PC.NextSample()) End If ' Reset the counter every 20th iteration. If j Mod 20 = 0 Then PC.RawValue = Stopwatch.GetTimestamp() Start = DateTime.Now End If System.Threading.Thread.Sleep(50) Next j Console.WriteLine(("Elapsed time = " + _ DateTime.Now.Subtract(Start).ToString())) End Sub Private Shared Sub OutputSample(s As CounterSample) Console.WriteLine(ControlChars.Lf + ControlChars.Cr + "+++++++") Console.WriteLine("Sample values - " + ControlChars.Cr _ + ControlChars.Lf) Console.WriteLine((" BaseValue = " _ + s.BaseValue.ToString())) Console.WriteLine((" CounterFrequency = " + _ s.CounterFrequency.ToString())) Console.WriteLine((" CounterTimeStamp = " + _ s.CounterTimeStamp.ToString())) Console.WriteLine((" CounterType = " + _ s.CounterType.ToString())) Console.WriteLine((" RawValue = " + _ s.RawValue.ToString())) Console.WriteLine((" SystemFrequency = " + _ s.SystemFrequency.ToString())) Console.WriteLine((" TimeStamp = " + _ s.TimeStamp.ToString())) Console.WriteLine((" TimeStamp100nSec = " + _ s.TimeStamp100nSec.ToString())) Console.WriteLine("+++++++") End Sub End Class
import System.*;
import System.Collections.*;
import System.Collections.Specialized.*;
import System.Diagnostics.*;
import System.Runtime.InteropServices.*;
public class App
{
public static void main(String[] args)
{
CollectSamples();
} //main
public static void CollectSamples()
{
final String categoryName = "ElapsedTimeSampleCategory";
final String counterName = "ElapsedTimeSample";
if (!(PerformanceCounterCategory.Exists(categoryName))) {
CounterCreationDataCollection ccdc =
new CounterCreationDataCollection();
// Add the counter.
CounterCreationData eTimeData = new CounterCreationData();
eTimeData.set_CounterType(PerformanceCounterType.ElapsedTime);
eTimeData.set_CounterName(counterName);
ccdc.Add(eTimeData);
// Create the category.
PerformanceCounterCategory.Create(categoryName,
"Demonstrates ElapsedTime performance counter usage.", ccdc);
}
else {
Console.WriteLine("Category exists - {0}", categoryName);
}
// Create the performance counter.
PerformanceCounter pc = new PerformanceCounter(categoryName,
counterName, false);
// Initialize the counter.
pc.set_RawValue(Stopwatch.GetTimestamp());
DateTime start = DateTime.get_Now();
// Loop for the samples.
for (int j = 0; j < 100; j++) {
// Output the values.
if (j % 10 == 9) {
Console.WriteLine("NextValue() = " + ((Single)pc.NextValue()).
ToString());
Console.WriteLine("Actual elapsed time = "
+ DateTime.get_Now().Subtract(start).ToString());
OutputSample(pc.NextSample());
}
// Reset the counter on every 20th iteration.
if (j % 20 == 0) {
pc.set_RawValue(Stopwatch.GetTimestamp());
start = DateTime.get_Now();
}
System.Threading.Thread.Sleep(50);
}
Console.WriteLine("Elapsed time = " + DateTime.get_Now().
Subtract(start).ToString());
} //CollectSamples
private static void OutputSample(CounterSample s)
{
Console.WriteLine("\r\n+++++++++++");
Console.WriteLine("Sample values - \r\n");
Console.WriteLine(" BaseValue = " + s.get_BaseValue());
Console.WriteLine(" CounterFrequency = " + s.get_CounterFrequency());
Console.WriteLine(" CounterTimeStamp = " + s.get_CounterTimeStamp());
Console.WriteLine(" CounterType = " + s.get_CounterType());
Console.WriteLine(" RawValue = " + s.get_RawValue());
Console.WriteLine(" SystemFrequency = " + s.get_SystemFrequency());
Console.WriteLine(" TimeStamp = " + s.get_TimeStamp());
Console.WriteLine(" TimeStamp100nSec = " + s.get_TimeStamp100nSec());
Console.WriteLine("++++++++++++++++++++++");
} //OutputSample
} //App
- PerformanceCounterPermission for reading the performance counter category. Associated enumeration: PerformanceCounterPermissionAccess.Read.
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.
Community Additions
ADD
Show:
Note