C#에서 배열의 성능은 데이터 타입(Reference Type vs. Value Type)에 따라 크게 달라진다.
메모리 관리 방식, 캐시 활용, 그리고 GC(Garbage Collector)의 영향 등 다양한 요인에 의해 발생
장점
큰 데이터 처리 : 힙에 할당되어 큰 배열을 생성할 수 있다.
동적 할당 : 필요에 따라 크기를 조절할 수 있다.
단점
메모리 접근 속도 : 스택에 비해 느리다.
캐시 미스 : 데이터가 비연속적으로 분포되어 캐시 미스가 발생할 가능성이 높다.
GC 부담 증가 : GC가 자주 개입되어 성능 저하가 발생할 수 있다.
장점
메모리 효율성 : 스택에 할당되어 메모리 접근 속도가 빠르다.
캐시 친화적 : 연속된 메모리 공간에 배치되어 캐시 활용도가 높다.
GC 부담 감소 : GC의 개입이 적어 성능 저하가 적다.
단점
크기 제한 : 스택 크기에 제한이 있으므로 매우 큰 배열을 할당하기 어렵다.
복사 시 오버헤드 : 배열을 복사할 때 전체 데이터가 복사된다.
실제 성능은 데잍터 크기, 접근 패턴, 시스템 사양 등 다양한 요인으로 달라질 수 있다.
Reference Type 배열이 성능이 높은 경우
Value Type 배열이 성능이 높은 경우