수색…


통사론

  • stopWatch.Start () - 스톱워치를 시작합니다.
  • stopWatch.Stop () - 스톱워치를 중지합니다.
  • stopWatch.Elapsed - 현재 간격으로 측정 된 총 경과 시간을 가져옵니다.

비고

스톱워치는 종종 벤치마킹 프로그램에서 시간 코드를 사용하고 다양한 코드 세그먼트가 얼마나 효율적으로 실행되는지 확인하는 데 사용됩니다.

스톱워치 인스턴스 만들기

스톱워치 인스턴스는 경과 된 시간을 여러 간격으로 측정 할 수 있습니다. 전체 경과 시간은 모든 개별 간격이 함께 추가됩니다. 이것은 두 개 이상의 이벤트 사이의 경과 시간을 측정하는 신뢰할 수있는 방법을 제공합니다.

Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();

double d = 0;
for (int i = 0; i < 1000 * 1000 * 1000; i++)
{
    d += 1;
}

stopWatch.Stop();
Console.WriteLine("Time elapsed: {0:hh\\:mm\\:ss\\.fffffff}", stopWatch.Elapsed);

StopwachSystem.Diagnostics 있으므로 System.Diagnosticsusing System.Diagnostics; 추가해야합니다 using System.Diagnostics; 당신의 파일에.

IsHighResolution

  • IsHighResolution 속성은 타이머가 고해상도 성능 카운터를 기반으로하는지 아니면 DateTime 클래스를 기반으로 하는지를 나타냅니다.
  • 이 필드는 읽기 전용입니다.
// Display the timer frequency and resolution.
if (Stopwatch.IsHighResolution)
{
    Console.WriteLine("Operations timed using the system's high-resolution performance counter.");
}
else 
{
    Console.WriteLine("Operations timed using the DateTime class.");
}

long frequency = Stopwatch.Frequency;
Console.WriteLine("  Timer frequency in ticks per second = {0}",
    frequency);
long nanosecPerTick = (1000L*1000L*1000L) / frequency;
Console.WriteLine("  Timer is accurate within {0} nanoseconds", 
    nanosecPerTick);
}

https://dotnetfiddle.net/ckrWUo

Stopwatch 클래스에서 사용하는 타이머는 시스템 하드웨어 및 운영 체제에 따라 다릅니다. StopWatch 타이머가 고해상도 성능 카운터를 기반으로하는 경우 IsHighResolution이 true입니다. 그렇지 않으면 IsHighResolution은 거짓이며 Stopwatch 타이머가 시스템 타이머를 기반으로 함을 나타냅니다.

스톱워치의 틱은 기계 / OS에 따라 다르므로 스톱워치 틱의 비율은 두 시스템간에 동일해야하며, 재부팅 후 동일한 시스템에서도 초 단위로 계산해서는 안됩니다. 따라서 Stopwatch 틱을 DateTime / TimeSpan 틱과 같은 간격으로 계산할 수 없습니다.

시스템 독립적 시간을 얻으려면 Stopwatch.Frequency (초당 틱)를 고려한 Stopwatch의 Elapsed 또는 ElapsedMilliseconds 속성을 사용해야합니다.

스톱워치는 더 가벼우므로 타이밍 프로세스에 대해 Datetime을 통해 항상 사용해야하며 고해상도 성능 카운터를 사용할 수없는 경우 Dateime을 사용합니다.

출처



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow