Stopwatch.ElapsedMilliseconds Eigenschap

Definitie

Hiermee haalt u de totale verstreken tijd op die wordt gemeten door het huidige exemplaar, in milliseconden.

public:
 property long ElapsedMilliseconds { long get(); };
public long ElapsedMilliseconds { get; }
member this.ElapsedMilliseconds : int64
Public ReadOnly Property ElapsedMilliseconds As Long

Waarde van eigenschap

Een alleen-lezen lang geheel getal dat het totale aantal milliseconden aangeeft dat wordt gemeten door de huidige instantie.

Voorbeelden

In het volgende voorbeeld wordt de Stopwatch klasse gebruikt om de prestaties van vier verschillende implementaties te meten voor het parseren van een geheel getal uit een tekenreeks. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de Stopwatch klasse.

private static void TimeOperations()
{
    long nanosecPerTick = (1000L*1000L*1000L) / Stopwatch.Frequency;
    const long numIterations = 10000;

    // Define the operation title names.
    String [] operationNames = {"Operation: Int32.Parse(\"0\")",
                                   "Operation: Int32.TryParse(\"0\")",
                                   "Operation: Int32.Parse(\"a\")",
                                   "Operation: Int32.TryParse(\"a\")"};

    // Time four different implementations for parsing
    // an integer from a string.

    for (int operation = 0; operation <= 3; operation++)
    {
        // Define variables for operation statistics.
        long numTicks = 0;
        long numRollovers = 0;
        long maxTicks = 0;
        long minTicks = Int64.MaxValue;
        int indexFastest = -1;
        int indexSlowest = -1;
        long milliSec = 0;

        Stopwatch time10kOperations = Stopwatch.StartNew();

        // Run the current operation 10001 times.
        // The first execution time will be tossed
        // out, since it can skew the average time.

        for (int i=0; i<=numIterations; i++)
        {
            long ticksThisTime = 0;
            int inputNum;
            Stopwatch timePerParse;

            switch (operation)
            {
                case 0:
                    // Parse a valid integer using
                    // a try-catch statement.

                    // Start a new stopwatch timer.
                    timePerParse = Stopwatch.StartNew();

                    try
                    {
                        inputNum = Int32.Parse("0");
                    }
                    catch (FormatException)
                    {
                        inputNum = 0;
                    }

                    // Stop the timer, and save the
                    // elapsed ticks for the operation.

                    timePerParse.Stop();
                    ticksThisTime = timePerParse.ElapsedTicks;
                    break;
                case 1:
                    // Parse a valid integer using
                    // the TryParse statement.

                    // Start a new stopwatch timer.
                    timePerParse = Stopwatch.StartNew();

                    if (!Int32.TryParse("0", out inputNum))
                    {
                        inputNum = 0;
                    }

                    // Stop the timer, and save the
                    // elapsed ticks for the operation.
                    timePerParse.Stop();
                    ticksThisTime = timePerParse.ElapsedTicks;
                    break;
                case 2:
                    // Parse an invalid value using
                    // a try-catch statement.

                    // Start a new stopwatch timer.
                    timePerParse = Stopwatch.StartNew();

                    try
                    {
                        inputNum = Int32.Parse("a");
                    }
                    catch (FormatException)
                    {
                        inputNum = 0;
                    }

                    // Stop the timer, and save the
                    // elapsed ticks for the operation.
                    timePerParse.Stop();
                    ticksThisTime = timePerParse.ElapsedTicks;
                    break;
                case 3:
                    // Parse an invalid value using
                    // the TryParse statement.

                    // Start a new stopwatch timer.
                    timePerParse = Stopwatch.StartNew();

                    if (!Int32.TryParse("a", out inputNum))
                    {
                        inputNum = 0;
                    }

                    // Stop the timer, and save the
                    // elapsed ticks for the operation.
                    timePerParse.Stop();
                    ticksThisTime = timePerParse.ElapsedTicks;
                    break;

                default:
                    break;
            }

            // Skip over the time for the first operation,
            // just in case it caused a one-time
            // performance hit.
            if (i == 0)
            {
                time10kOperations.Reset();
                time10kOperations.Start();
            }
            else
            {

                // Update operation statistics
                // for iterations 1-10000.
                if (maxTicks < ticksThisTime)
                {
                    indexSlowest = i;
                    maxTicks = ticksThisTime;
                }
                if (minTicks > ticksThisTime)
                {
                    indexFastest = i;
                    minTicks = ticksThisTime;
                }
                numTicks += ticksThisTime;
                if (numTicks < ticksThisTime)
                {
                    // Keep track of rollovers.
                    numRollovers ++;
                }
            }
        }

        // Display the statistics for 10000 iterations.

        time10kOperations.Stop();
        milliSec = time10kOperations.ElapsedMilliseconds;

        Console.WriteLine();
        Console.WriteLine("{0} Summary:", operationNames[operation]);
        Console.WriteLine("  Slowest time:  #{0}/{1} = {2} ticks",
            indexSlowest, numIterations, maxTicks);
        Console.WriteLine("  Fastest time:  #{0}/{1} = {2} ticks",
            indexFastest, numIterations, minTicks);
        Console.WriteLine("  Average time:  {0} ticks = {1} nanoseconds",
            numTicks / numIterations,
            (numTicks * nanosecPerTick) / numIterations );
        Console.WriteLine("  Total time looping through {0} operations: {1} milliseconds",
            numIterations, milliSec);
    }
}
Private Shared Sub TimeOperations()

   Dim nanosecPerTick As Long = 1000000000 / Stopwatch.Frequency
   Const numIterations As Long = 10000

   ' Define the operation title names.
   Dim operationNames As String() =  _
     {"Operation: Int32.Parse(""0"")", _
      "Operation: Int32.TryParse(""0"")", _
      "Operation: Int32.Parse(""a"")", _
      "Operation: Int32.TryParse(""a"")"}

   ' Time four different implementations for parsing
   ' an integer from a string.

   Dim operation As Integer
   For operation = 0 To 3
      ' Define variables for operation statistics.
      Dim numTicks As Long = 0
      Dim numRollovers As Long = 0
      Dim maxTicks As Long = 0
      Dim minTicks As Long = Int64.MaxValue
      Dim indexFastest As Integer = - 1
      Dim indexSlowest As Integer = - 1
      Dim milliSec As Long = 0

      Dim time10kOperations As Stopwatch = Stopwatch.StartNew()

      ' Run the current operation 10001 times.
      ' The first execution time will be tossed
      ' out, since it can skew the average time.
      Dim i As Integer
      For i = 0 To numIterations
         Dim ticksThisTime As Long = 0
         Dim inputNum As Integer
         Dim timePerParse As Stopwatch

         Select Case operation
            Case 0
               ' Parse a valid integer using
               ' a try-catch statement.
               ' Start a new stopwatch timer.
               timePerParse = Stopwatch.StartNew()

               Try
                  inputNum = Int32.Parse("0")
               Catch e As FormatException
                  inputNum = 0
               End Try

               ' Stop the timer, and save the
               ' elapsed ticks for the operation.
               timePerParse.Stop()
               ticksThisTime = timePerParse.ElapsedTicks
            Case 1
               ' Parse a valid integer using
               ' the TryParse statement.
               ' Start a new stopwatch timer.
               timePerParse = Stopwatch.StartNew()

               If Not Int32.TryParse("0", inputNum) Then
                  inputNum = 0
               End If

               ' Stop the timer, and save the
               ' elapsed ticks for the operation.
               timePerParse.Stop()
               ticksThisTime = timePerParse.ElapsedTicks
            Case 2
               ' Parse an invalid value using
               ' a try-catch statement.
               ' Start a new stopwatch timer.
               timePerParse = Stopwatch.StartNew()

               Try
                  inputNum = Int32.Parse("a")
               Catch e As FormatException
                  inputNum = 0
               End Try

               ' Stop the timer, and save the
               ' elapsed ticks for the operation.
               timePerParse.Stop()
               ticksThisTime = timePerParse.ElapsedTicks
            Case 3
               ' Parse an invalid value using
               ' the TryParse statement.
               ' Start a new stopwatch timer.
               timePerParse = Stopwatch.StartNew()

               If Not Int32.TryParse("a", inputNum) Then
                  inputNum = 0
               End If

               ' Stop the timer, and save the
               ' elapsed ticks for the operation.
               timePerParse.Stop()
               ticksThisTime = timePerParse.ElapsedTicks

            Case Else
         End Select

         ' Skip over the time for the first operation,
         ' just in case it caused a one-time
         ' performance hit.
         If i = 0 Then
            time10kOperations.Reset()
            time10kOperations.Start()
         Else

            ' Update operation statistics
            ' for iterations 1-10001.
            If maxTicks < ticksThisTime Then
               indexSlowest = i
               maxTicks = ticksThisTime
            End If
            If minTicks > ticksThisTime Then
               indexFastest = i
               minTicks = ticksThisTime
            End If
            numTicks += ticksThisTime
            If numTicks < ticksThisTime Then
               ' Keep track of rollovers.
               numRollovers += 1
            End If
         End If
      Next i

      ' Display the statistics for 10000 iterations.
      time10kOperations.Stop()
      milliSec = time10kOperations.ElapsedMilliseconds

      Console.WriteLine()
      Console.WriteLine("{0} Summary:", operationNames(operation))
      Console.WriteLine("  Slowest time:  #{0}/{1} = {2} ticks", _
         indexSlowest, numIterations, maxTicks)
      Console.WriteLine("  Fastest time:  #{0}/{1} = {2} ticks", _
         indexFastest, numIterations, minTicks)
      Console.WriteLine("  Average time:  {0} ticks = {1} nanoseconds", _
         numTicks / numIterations, numTicks * nanosecPerTick / numIterations)
      Console.WriteLine("  Total time looping through {0} operations: {1} milliseconds", _
         numIterations, milliSec)
   Next operation

End Sub

Opmerkingen

Deze eigenschap vertegenwoordigt de verstreken tijd die naar beneden is afgerond op de dichtstbijzijnde gehele millisecondewaarde. Gebruik de Elapsed of ElapsedTicks eigenschappen voor nauwkeurigere metingen.

U kunt query's uitvoeren op de eigenschappen ElapsedElapsedMillisecondsen ElapsedTicks terwijl het Stopwatch exemplaar wordt uitgevoerd of gestopt. De verstreken tijdeigenschappen nemen geleidelijk toe terwijl de Stopwatch app wordt uitgevoerd. Ze blijven constant wanneer het exemplaar wordt gestopt.

De verstreken tijdwaarde van een Stopwatch exemplaar is standaard gelijk aan het totaal van alle gemeten tijdsintervallen. Elke aanroep die begint met Start tellen op de cumulatieve verstreken tijd; elke aanroep om de huidige intervalmeting te Stop beƫindigen en blokkeert de cumulatieve verstreken tijdwaarde. Gebruik de Reset methode om de cumulatieve verstreken tijd in een bestaand Stopwatch exemplaar te wissen.

Van toepassing op

Zie ook