C#

코드 실행시간 측정 : Stopwatch

코샵 2023. 10. 17. 15:57
반응형

C#에서 코드의 실행시간을 측정하기 위해서는 Stopwatch 클래스를 사용할 수 있습니다. Stopwatch 클래스는 코드의 시작 시간과 종료 시간을 기록하여, 두 시간의 차이를 계산하여 실행시간을 구할 수 있습니다.

 

Stopwatch 사용법

// Stopwatch 클래스를 생성합니다.
Stopwatch stopwatch = new Stopwatch();

// 코드를 실행합니다.
stopwatch.Start();
// ...
stopwatch.Stop();

// 실행시간을 구합니다.
TimeSpan elapsedTime = stopwatch.Elapsed;

위 코드는 코드의 시작 시간과 종료 시간을 기록하고, 두 시간의 차이를 계산하여 실행시간을 구합니다.

 

Stopwatch의 속성

Stopwatch 클래스는 다음과 같은 속성을 제공합니다.

  • Elapsed 속성: 코드의 시작 시간과 종료 시간의 차이를 나타내는 TimeSpan 객체를 반환합니다.
  • ElapsedMilliseconds 속성: 코드의 실행시간을 밀리초 단위로 반환합니다.
  • ElapsedTicks 속성: 코드의 실행시간을 틱 단위로 반환합니다.

예제

using System.Diagnostics;

public class StopwatchExample
{
    public static void Main()
    {
        // Stopwatch 클래스를 생성합니다.
        Stopwatch stopwatch = new Stopwatch();

        // 코드를 실행합니다.
        stopwatch.Start();
        for (int i = 0; i < 1000000; i++)
        {
            // ...
        }
        stopwatch.Stop();

        // 실행시간을 구합니다.
        TimeSpan elapsedTime = stopwatch.Elapsed;

        // 실행시간을 출력합니다.
        Console.WriteLine($"실행시간: {elapsedTime.TotalMilliseconds} 밀리초");
    }
}

 

위 코드는 1000000번 반복되는 코드의 실행시간을 측정합니다. 실행 결과는 다음과 같습니다.

실행시간: 25 밀리초

 

Stopwatch 클래스의 메서드

Stopwatch 클래스는 다음과 같은 메서드를 제공합니다.

  • Start(): 타이머를 시작합니다.
  • Stop(): 타이머를 중지합니다.
  • Elapsed: 실행시간을 나타내는 TimeSpan 객체를 반환합니다.
  • ElapsedMilliseconds: 실행시간을 밀리초 단위로 반환합니다.
  • ElapsedTicks: 실행시간을 틱 단위로 반환합니다.

Stopwatch 클래스의 단점

Stopwatch 클래스는 코드의 실행시간을 측정하는 데 유용한 클래스이지만, 다음과 같은 단점이 있습니다.

  • 성능 저하: Stopwatch 클래스를 사용하면 코드의 실행시간이 약간 저하될 수 있습니다.
  • 정확도: Stopwatch 클래스의 정확도는 시스템의 타이머의 정확도에 따라 달라집니다.

결론

Stopwatch 클래스는 C#에서 코드의 실행시간을 측정하는 데 유용한 클래스입니다. Stopwatch 클래스를 사용하여 코드의 실행시간을 측정하면, 코드의 성능을 개선하는 데 도움이 될 수 있습니다.

Stopwatch 클래스의 정확도는 시스템의 성능에 따라 달라질 수 있습니다. 따라서, 정확한 실행시간을 측정하기 위해서는 고성능 시스템을 사용하는 것이 좋습니다.

또한, Stopwatch 클래스는 코드의 실행시간을 측정하기 위한 목적으로만 사용해야 합니다. Stopwatch 클래스를 사용하여 다른 용도로 사용하면, 코드의 성능이 저하될 있습니다.