코드 실행시간 측정 : Stopwatch

2023. 10. 17. 15:57·C#
반응형

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 클래스를 사용하여 다른 용도로 사용하면, 코드의 성능이 저하될 수 있습니다.

저작자표시 비영리 변경금지 (새창열림)

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

C#의 HashSet<T>  (0) 2023.10.19
C#의 char 자료형  (0) 2023.10.18
C#에서 입출력을 다루는 방법  (0) 2023.10.13
C#의 오버로딩이란?  (0) 2023.10.01
C#의 var 키워드란?  (1) 2023.09.30
'C#' 카테고리의 다른 글
  • C#의 HashSet<T>
  • C#의 char 자료형
  • C#에서 입출력을 다루는 방법
  • C#의 오버로딩이란?
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • MongoDB (4)
      • 하드웨어 (17)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    codingtips
    ipcamera
    programming101
    programmerlife
    rtsp
    리뷰이관
    카페24리뷰
    devlife
    셀레니움
    appdevelopment
    codingcommunity
    긴유통기한우유
    Python
    C#
    카페24리뷰이관
    cv2
    list
    learntocode
    리스트
    라떼우유
    유니티
    스크립트 실행
    리뷰관리
    스마트스토어리뷰
    상품 리뷰 크롤링
    파이썬
    믈레코비타멸균우유
    쇼핑몰리뷰
    unity
    스크립트 실행 순서
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
코드 실행시간 측정 : Stopwatch
상단으로

티스토리툴바