컬렉션 성능 : 어떻게 LINQ 합니까? | dotNetDave

dotNetDave는 성능에 관심이 많은 것으로 보입니다. 많은 글들이 성능 평가 이상의 의미는 없지만 아래의 글은 LINQ를 어떻게 사용하는지에 따라 성능이 달라진다는 점 (마치 SQL 쿼리를 효율적으로 사용해야 하는 것 처럼)을 알려줍니다.

저는 LINQ 언어 방식 (내용에서는 API라고 표현되어 있는) 방식보다는 API(내용에서는 LAMBDA라고 표현되어 있는) 방식을 선호합니다. 아무리 익숙해지려 해도 적응이 안되더라고요.

LINQ는 기본적으로 지연 평가(Lazy evaluation)를 하고 다양한 쿼리문으로 내가 찾고자 하는 정보 목록을 쉽게 찾을 수 있기 때문에 익숙해진다면 매우 유용합니다. 특히 이 성능 내용을 살펴봐도 알 수 있듯이 .NET 6의 LINQ 성능은 .NET 5에 비해 더 극적으로 좋아졌습니다.

8개의 좋아요

저도 linq로 join을 하는 경우에만 Query 형태로 사용합니다. join 조건이 명시적으로 드러나기 때문입니다. 그 이외의 대다수의 경우엔 Method 형태로 사용합니다. 그리고 이것은 들은 것인데… Query 형태인 linq도 컴파일 진행 중에 Method 형태로 바뀐다고 합니다.

7개의 좋아요

저는 그냥 람다표현식으로 다 때렸는데 다른건 몰라도 Where 다음에 뭐시기 하는건 다 조심해야겠네요.

3개의 좋아요