다음을 통해 공유


비효율적인 LinkedList 순회

이 문서에서는 컬렉션을 트래버스할 LinkedList<T> 때 성능 인사이트를 설명합니다.

원인

요소를 찾기 위해 트래버스하면 LinkedList<T> 성능이 저하됩니다.

성능 인사이트 설명

LinkedList<T> 는 인덱스별로 요소에 대한 O(1) 액세스를 제공하지 않습니다. 특히 루프 또는 중첩된 루프에서 목록을 통과하는 각 순회는 O(n) 시간 복잡성을 초래합니다. 이로 인해 자주 또는 큰 연결된 목록에서 항목을 검색할 때 성능이 크게 저하될 수 있습니다.

가능하면 사용 List<T> 또는 Dictionary<TKey,TValue>. List<T> 는 인덱 Dictionary<TKey, TValue> 스별로 O(1) 액세스를 제공하고 키별로 O(1) 조회를 제공합니다. 이러한 대안은 연결된 목록을 트래버스하는 것에 비해 대부분의 액세스 패턴에 더 효율적입니다.

경고를 조사하는 방법

CPU 사용량 도구에서 소스 코드 보기를 클릭하여 순회가 사용되는 위치를 LinkedList<T> 찾습니다. 가능하면 시나리오에 대한 더 빠른 액세스를 제공하는 다른 컬렉션 형식을 사용하도록 리팩터링합니다.

참고하십시오

컬렉션 및 데이터 구조