다음을 통해 공유


비효율적인 변경할 수 없는 컬렉션 수정

이 문서에서는 다음과 같이 ImmutableList<T>변경할 수 없는 컬렉션을 수정할 때의 성능 인사이트를 설명합니다.

원인

변경할 수 없는 컬렉션(예: Add또는RemoveInsert)을 수정하면 성능이 저하됩니다.

성능 인사이트 설명

변경할 수 없는 컬렉션을 수정할 때마다 컬렉션의 새 복사본이 생성되어 과도한 메모리 할당 및 CPU 사용량이 발생합니다. 이는 수정이 자주, 루프 또는 성능에 중요한 코드 경로에서 수행되는 경우 특히 비효율적입니다.

가능하면 생성 중 또는 핫 경로에서 변경 가능한 컬렉션(예: List<T>)을 사용하고 필요한 경우에만 변경할 수 없는 컬렉션으로 변환합니다. 변경 가능한 컬렉션은 효율적인 내부 수정을 허용하지만 변경할 수 없는 컬렉션은 스레드 안전성 및 수정이 자주 없는 시나리오에 가장 적합합니다.

경고를 조사하는 방법

CPU 사용량 도구에서 소스 코드 보기를 클릭하여 변경할 수 없는 컬렉션이 수정되는 위치를 찾습니다. 가능하면 성능에 민감한 코드에서 변경 가능한 컬렉션을 사용하도록 리팩터링하고 필요한 경우에만 변경할 수 없는 컬렉션으로 변환합니다.

참고하십시오

변경할 수 없는 컬렉션 설명서