본문 바로가기
C#

[C#] Stopwatch

by DANEW 2023. 10. 30.

Stopwatch 클래스

 

Stopwatch 클래스 (System.Diagnostics)

경과 시간을 정확하게 측정하는 데 사용할 수 있는 일련의 메서드와 속성을 제공합니다.

learn.microsoft.com

namespace System.Diagnostics
{
    public class Stopwatch
    {
        public static readonly long Frequency;
        public static readonly bool IsHighResolution;
 
        public Stopwatch();
 
        public bool IsRunning { get; }
 
        public TimeSpan Elapsed { get; }
        public long ElapsedMilliseconds { get; }
        public long ElapsedTicks { get; }
       
        public static long GetTimestamp();
 
        public static Stopwatch StartNew();
 
        public void Start();
        public void Restart();
        public void Stop();
        public void Reset();
    }
}
반응형

- 실행 시간을 손 쉽게 측정 할 수 있는 메커니즘
- OS와 HW가 지원하는 가장 높은 해상도, 일반적으로 1ms 미만
 (DateTime.Now나 Environment.TickCount보다 높은 해상도)
- 시작: StartNew | 인스턴스 생성 후 Start
- 중지: Stop
- 흐른 시간
 1. Elapsed (TimeSpan)
 2. ElapsedTick (long, Frequency로 나누면 초 단위 시간이 나옴)
 3. ElapsedMiliseconds (long, ms)

Stopwatch sw = Stopwatch.StartNew();
 
Thread.Sleep(2000);
 
Console.WriteLine(sw.Elapsed);
Console.WriteLine(sw.ElapsedMilliseconds);
Console.WriteLine(sw.ElapsedTicks);
Console.WriteLine(sw.ElapsedTicks / Stopwatch.Frequency);

 

반응형

'C#' 카테고리의 다른 글

[C#] FileStream  (0) 2023.11.20
[C#] Stream  (0) 2023.11.17
[C#] Task  (0) 2023.11.06
[C#] Thread  (0) 2023.11.01
[C#] PerformanceCounter, PerformanceCounterCategory  (0) 2023.10.28
[C#] EventLog (Windows 이벤트 로그)  (0) 2023.10.26
[C#] StackTrace, StackFrame  (0) 2023.10.24
[C#] Debugger  (0) 2023.10.22