본문 바로가기

C#

C# 메서드 인라인(Method Inlining)과 성능 영향

C#에서 메서드 인라인(Method Inlining)은 컴파일러가 메서드 호출 부분에 메서드 본문을 직접 삽입하는 최적화 기법입니다. 이를 통해 함수 호출 오버헤드를 줄이고 실행 성능을 향상시킬 수 있습니다.

1. 메서드 인라인 이해

인라인은 주로 짧고 간단한 메서드에 적용되며, JIT 컴파일러가 자동으로 수행합니다. 사용자가 직접 인라인을 제어할 수는 없지만 [MethodImpl(MethodImplOptions.AggressiveInlining)] 속성으로 인라인을 유도할 수 있습니다.

2. 성능에 미치는 영향

인라인을 통해 호출 비용이 사라지므로 성능이 개선됩니다. 하지만 너무 큰 메서드를 인라인하면 코드 크기가 늘어나서 캐시 효율이 떨어질 수 있으니 주의해야 합니다.

3. 예제 코드

using System.Runtime.CompilerServices;

public class Calculator
{
    [MethodImpl(MethodImplOptions.AggressiveInlining)]
    public int Add(int a, int b)
    {
        return a + b;
    }

    public int UseAdd()
    {
        // Add 메서드가 인라인되어 아래와 같이 동작할 수 있습니다.
        // return a + b;
        return Add(5, 3);
    }
}

이처럼 인라인은 성능 최적화에 도움되지만, 항상 무조건 좋은 것은 아닙니다. 메서드 크기와 호출 빈도를 고려해 적절히 활용해야 합니다.