본문 바로가기

C#

C# Stopwatch로 함수 호출 빈도 측정하기

C#에서 Stopwatch 클래스는 고해상도 타이머로 성능 측정에 자주 사용됩니다. 이번 글에서는 Stopwatch를 이용해 특정 함수의 호출 빈도를 간단하게 측정하는 방법을 소개합니다.

1. Stopwatch 기본 사용법

Stopwatch를 시작하고 정지하여 경과 시간을 구할 수 있습니다. 기본 구조는 다음과 같습니다.

Stopwatch sw = new Stopwatch();
sw.Start();
// 실행할 코드
sw.Stop();
Console.WriteLine($"경과 시간: {sw.ElapsedMilliseconds}ms");

2. 함수 호출 빈도 측정 로직

특정 시간 간격 내에 함수가 몇 번 호출되었는지 확인하는 간단한 방법은 Stopwatch의 경과 시간을 활용하는 것입니다. 예를 들어 1초마다 호출 횟수를 출력할 수 있습니다.

using System;
using System.Diagnostics;

class Program {
    static Stopwatch sw = new Stopwatch();
    static int callCount = 0;

    static void TargetFunction() {
        callCount++;
        // 측정 주기 (1초)마다 호출 빈도 출력
        if (sw.ElapsedMilliseconds >= 1000) {
            Console.WriteLine($"최근 1초간 호출 횟수: {callCount}");
            callCount = 0;
            sw.Restart();
        }
    }

    static void Main() {
        sw.Start();
        // 테스트: 빠르게 함수 여러 번 호출
        for (int i = 0; i < 10000; i++) {
            TargetFunction();
        }

        // 남은 시간 동안 출력
        while (true) {
            TargetFunction();
            System.Threading.Thread.Sleep(10);
        }
    }
}

3. 마무리

Stopwatch를 활용하면 간단한 방법으로 함수 호출 빈도를 측정할 수 있습니다. 본 예제를 응용해 다양한 시간 단위나 조건에 맞춰 활용해 보세요.