Microsoft MVP성태의 닷넷 이야기
IEnumerable 의 "지연된 평가" 에 관하여 질문드립니다. [링크 복사], [링크+제목 복사],
조회: 9196
글쓴 사람
Question
홈페이지
첨부 파일

안녕하세요. 또 질문드리게 되네요.. ^^

제가 C# 6.0 책을 보던 중 이 부분이 궁금하여 테스트를 진행해봤습니다.

그런데 FindAll 은 모든 요소를 대상으로 실행된다고 되어있고,

Where 은 열거자를 통해 요소를 순회할 때 하나씩 실행 된다고 되어있습니다. 그리고 이를 "지연된 평가" 라고 하고요.

또한 Where 의 장점이 데이터가 필요한 순간에만 코드가 CPU 에 의해 실행된다고 되어있습니다.

FindAll 은 데이터가 몇 개만 필요해도 필요한게 모두 끝날 때까지 CPU 가 실행되구요.

그렇다는 것은 Where 이 속도가 더 빨라야한다는 뜻인데..

어째서 인지 FindAll 이 아무리 돌려봐도 더 빠릅니다.

어떻게 된 영문인지 몰라 질문드립니다.

테스트 할 때 썻던 프로젝트는 첨부하였습니다.








[최초 등록일: ]
[최종 수정일: 11/19/2017]


비밀번호

댓글 작성자
 



2017-11-19 03시47분
대개의 경우 지연 평가가 더 느립니다. 지연 평가를 구현하기 위해 부가적인 코드가 더 수반되는데요, 그 부분이 오버헤드로 작용합니다. FindAll과 Where로 각각 구현한 코드를 .NET Reflector와 같은 역어셈블 도구로 확인해 보면 차이를 눈으로 확인할 수 있습니다.

지연된 평가는 필요한 순간까지 코드 실행을 미룬다는 것일 뿐 가장 빠르게 동작하는 코드를 생성하는 것은 아닙니다.
정성태
2017-11-20 03시48분
[Question] 아하 그렇군요. 감사합니다.
[guest]

... 46  47  48  49  50  51  52  53  54  55  56  57  [58]  59  60  ...
NoWriterDateCnt.TitleFile(s)
1180김형지11/6/201314798안녕하십니까. 프로그램이 실행되지 않아 여쭙고자 합니다ㅠ [1]파일 다운로드1
1179이민석11/4/201314375[긴급질문] [in,out] 배열을 C# 에서 C/C++ 로 넘기는 방법 - 두번째 이야기 관련 질문.. [6]파일 다운로드1
1178박진영11/1/201313922[급질문] IIS 하위 가상폴더 구성 문의 [4]
1177Jeon...10/28/201310825안녕하세요~ 어머니께 물어서 사이트를 찾아왔어요 [2]
1176김태훈10/25/201310606AxWebBrowser에 대해 질문드립니다. [1]
1175서경희10/20/201315600netscape 지원이 되지 않는다는 문구.. [2]파일 다운로드1
1174임동찬10/16/201314392프리징 현상에 대한 고민 [5]
1173김재영10/8/201310217인터페이스에 대해 기초적 질문이 있습니다. [2]파일 다운로드1
1172박진영10/2/201313112웹사이트 연결시 AJAX 어셈블리 오류 문의드립니다. [5]파일 다운로드1
1171링거8/30/201321093ClickOnce 업데이트 문제. [4]
1170임동찬8/28/201312437비동기적 이벤트 핸들링 방법 [2]
1167나종식8/20/201311547win7 에서 LSP 가 DNS Client 에 인젝션 안되는 문제 [6]
1165임동찬8/19/201310877오류 발생시 로깅 문제.. [3]
1164박철8/19/201311523모바일 게임서버를 작성 하려면 무엇부터 시작하여야 하나요? [2]
1163안연준8/2/201311006음... 안녕하세요 ^^ 윈도우즈 폼에 대해서 잠시 물어볼께요 [3]
1162박진영7/23/201394681개의 PC에서 동일사이트 접속제한을 어떻게 하죠? [1]
1161Ji Y...7/12/201312191안녕하세요? 음성인식 관련해서 질문있습니다, [2]
1160이상식7/12/201312583웹서비스 커넥션 풀 오류입니다. [6]
1159김덕성7/4/201320793C# 마샬링 관련 문의입니다 [3]
1157이상식6/26/201314429빌드시 오류인데 원인을 모르겠네요. [2]파일 다운로드1
1156정환나라6/20/201311616In-Process Side-By-Side 동작 원리는 어떻게 되는걸까요? [3]
1155MD워시퍼6/20/201310613안녕하세요. 한가지 궁금한 것이 있어서 문의를 드립니다. [1]
1154it 대...6/13/201313672무선 패킷 스니핑 프로그램 [1]
1153이상헌6/8/201311186죄송합니다;; 또다시 의문점이 생겨 질문드립니다. [1]
1152이상헌6/8/201310869넷두이노 플러스 펌웨어 다운로드가 안되네요;;; [1]
1151황기동6/5/201311627무선 패킷 전송관련 질문 [1]
... 46  47  48  49  50  51  52  53  54  55  56  57  [58]  59  60  ...