본문 바로가기
CSharp/CSharp 문법

Span<T>을 이용한 고성능 문자열 처리

by MonoSoft 2025. 7. 4.
728x90
반응형

Span<T>을 이용한 고성능 문자열 처리

 

C#의 Span<T>는 메모리 할당 없이 배열이나 
문자열의 일부분을 안전하게 다룰 수 있게 해주는 고성능 구조체입니다.
특히 문자열을 조작하거나 파싱할 때 
Substring()을 대체해 GC 부담을 줄이고 빠른 실행 속도를 제공합니다.

using System;

class Program
{
    static void Main()
    {
        string input = "2025-07-04";
        Span<char> dateSpan = input.AsSpan();

        var year = dateSpan.Slice(0, 4);
        var month = dateSpan.Slice(5, 2);
        var day = dateSpan.Slice(8, 2);

        Console.WriteLine($"Year: {year}");
        Console.WriteLine($"Month: {month}");
        Console.WriteLine($"Day: {day}");
    }
}

출력 결과
Year: 2025  
Month: 07  
Day: 04

AsSpan()은 문자열을 Span<char>로 변환하여 
부분 접근이 가능하게 만듭니다.

Slice(start, length)로 원하는 범위를 참조만 하므로, 
메모리 복사나 할당이 일어나지 않습니다.

Span<T>는 stack-only 구조체로 힙에 할당되지 않아 
매우 효율적이며, 파싱 및 성능 최적화가 중요한 시나리오에 매우 적합합니다.

Span<T>는 파일 처리, 문자열 파싱, 바이너리 데이터 처리 등 
성능이 중요한 영역에서 매우 큰 이점을 제공합니다. .NET Core 2.1 이상에서 
사용할 수 있습니다.

 


#CSharpSpan활용 #Span문자열파싱 #고성능문자열처리 #CSharp메모리최적화 
#Substring대체 #SpanSlice사용법 #CSharp파싱성능 #SpanAsSpan활용 
#GC부담줄이기 #CSharp성능향상팁

728x90
반응형

댓글