C#에서는 메서드를 호출할 때 정적 메서드와 인스턴스 메서드 두 가지 방식을 사용할 수 있습니다. 이번 글에서는 두 호출 방식의 성능 차이를 간단히 비교합니다.
1. 정적 메서드와 인스턴스 메서드 개념
정적 메서드는 클래스에 속하며 객체 생성 없이 호출할 수 있습니다. 반면 인스턴스 메서드는 객체가 있어야 호출 가능합니다.
2. 성능 테스트 코드 예제
using System;
using System.Diagnostics;
class TestClass
{
public void InstanceMethod() { }
public static void StaticMethod() { }
}
class Program
{
static void Main()
{
var obj = new TestClass();
var sw = Stopwatch.StartNew();
for (int i = 0; i < 100_000_000; i++)
{
obj.InstanceMethod();
}
sw.Stop();
Console.WriteLine($"Instance Method: {sw.ElapsedMilliseconds} ms");
sw.Restart();
for (int i = 0; i < 100_000_000; i++)
{
TestClass.StaticMethod();
}
sw.Stop();
Console.WriteLine($"Static Method: {sw.ElapsedMilliseconds} ms");
}
}
3. 결과 및 결론
실험 결과 보통 정적 메서드 호출이 인스턴스 메서드 호출보다 약간 빠릅니다. 이는 인스턴스 메서드가 this 참조를 전달받아야 하기 때문입니다.
하지만 성능 차이는 미미하여 일반적인 상황에서는 크게 신경 쓰지 않아도 됩니다. 다만 성능이 중요한 반복 처리에서는 정적 메서드 활용을 고려할 수 있습니다.
'C#' 카테고리의 다른 글
| C# ObservableCollection<T>와 UI 데이터 바인딩 (0) | 2026.05.28 |
|---|---|
| C# KeyedCollection<T>로 키 기반 컬렉션 설계 (0) | 2026.05.27 |
| C# Stopwatch 대신 BenchmarkTimer 만들기 (0) | 2026.05.27 |
| C# ValueTask와 Task 성능 비교 및 활용 전략 (0) | 2026.05.27 |
| C# System.Buffers.ArrayPool<T>로 메모리 재활용하기 (0) | 2026.05.26 |