C# 내장 클래스 Stopwatch는 간단한 성능 측정에 자주 사용됩니다. 하지만 Stopwatch가 제공하는 기본 기능 그 이상으로 확장하고 싶다면, 직접 BenchmarkTimer를 만들어보는 것도 좋은 방법입니다.
1. BenchmarkTimer란?
BenchmarkTimer는 간단히 코드 실행 시간을 측정하는 타이머입니다. Stopwatch보다 더 직관적이고 맞춤형 기능을 추가할 수 있습니다.
2. BenchmarkTimer 간단 구현 예제
using System;
using System.Diagnostics;
public class BenchmarkTimer : IDisposable
{
private Stopwatch _stopwatch;
private string _name;
public BenchmarkTimer(string name = "Process")
{
_name = name;
_stopwatch = Stopwatch.StartNew();
}
public void Dispose()
{
_stopwatch.Stop();
Console.WriteLine($"[{_name}] Elapsed: {_stopwatch.Elapsed.TotalMilliseconds} ms");
}
}
BenchmarkTimer는 IDisposable을 구현하여 using 블록 내에서 간단히 사용할 수 있습니다.
3. 사용법
class Program
{
static void Main()
{
using (var timer = new BenchmarkTimer("Test Loop"))
{
for (int i = 0; i < 1000000; i++)
{
// 작업 수행
}
}
}
}
using 블록이 끝나면 자동으로 시간을 측정해 출력합니다. Stopwatch보다 코드가 더 깔끔해지고 여러 개의 커스텀 타이머도 관리하기 편합니다.
'C#' 카테고리의 다른 글
| C# KeyedCollection<T>로 키 기반 컬렉션 설계 (0) | 2026.05.27 |
|---|---|
| C# 정적 메서드와 인스턴스 메서드 호출 성능 비교 (0) | 2026.05.27 |
| C# ValueTask와 Task 성능 비교 및 활용 전략 (0) | 2026.05.27 |
| C# System.Buffers.ArrayPool<T>로 메모리 재활용하기 (0) | 2026.05.26 |
| C# 비동기 스트림(IAsyncEnumerable) 처리와 응용 (0) | 2026.05.26 |