본문 바로가기
클립보드

C# 팁: 컬렉션 크기를 초기화함으로써 메모리 할당 향상

by stdafx.h 2023. 10. 27.
반응형

 

간단한 변화만으로 성능에 영향을 줄 수 있습니다.

컬렉션을 초기화할 때 초기 크기를 지정하십시오!

 

1. 컬렉션 초기화
컬렉션(예: List)을 초기화하면 기본 크기로 생성됩니다. 
새 항목을 컬렉션에 추가할 때 .NET은 새 항목을 저장하기에 충분한 용량이 있는지 확인합니다. 
충분하지 않으면 내부 용량을 두 배로 늘립니다. 이 리사이징 과정은 시간과 메모리를 소모합니다. 
가능한 경우 예상 항목 수로 컬렉션을 초기화해야 합니다.

 

2. List 초기화
List의 경우, new List<T>()를 new List<T>(size)로 바꿈으로써 성능 향상을 얻을 수 있습니다. 
이에 대한 벤치마크 결과에서 List 초기화 없이는 평균 1.7배의 성능 저하와 2.5배의 메모리 낭비가 발생했습니다.

 

3. HashSet 초기화
List와 유사하게, HashSet도 올바르게 초기화할 때 큰 개선을 볼 수 있습니다. 
벤치마크 결과로는 HashSet을 초기화하지 않을 경우 실행 시간에서 평균 2배의 향상을, 메모리 할당에서는 애플리케이션을 3배 느리게 하는 것을 확인할 수 있습니다.

반응형