수색…
통사론
- 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);
Stopwach
는 System.Diagnostics
있으므로 System.Diagnostics
를 using 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을 사용합니다.