지연평가와 선행평가에 대해서 어느정도 감이 오는 사람이라면, 아주 손쉽게 이해되는 장이다. 변수 정의를 늦출수 있게 된것은 C++의 어디에서건 변수를 선언 할수 있게 만들어 줌으로써 생겨난 방법일것이다. 왜 늦출 수 있는 데까지 늦추어야 하는가? 가장 큰 이유는 변수의 생성 대입 초기화 라는 작업이, 일어날 필요가 없게 될 경우가 생기기 때문이다. 예를 들어서, 아주 큰 객체를 생성하여 대입하고 하고, 특정 함수를 작업하고, 다시 선언된 큰 객체를 사용하고 날려 버리는 작업이 있다고 했을때, 특정 함수에서 .. 오류가 나서, 이 이 객체를 쓰지도 못하게 되었다고 친다면, ... 이해가 쉽게 갈것이다. { string encrypted; if(password.lengh() < MinimumPasswordL..
지연 평가 검색 결과
해당 글 2건
항목 26: 변수 정의는 늦출 수 있는 데까지 늦추는 근성을 발휘하자.
책 정리/Effective C++ 3판
2008. 6. 25. 19:49
항목 17 : 효율 향상에 있어 지연 평가는 충분히 고려해 볼 만하다.
부재 : 해야 할 때만 하자. 이유 1. 최선의 속도를 내는 방법은 아무것도 하지 않는 것이기 때문이다. 구현 방법 1. 참조 카운팅(불필요한 객체 복사 피하기) 2.데이터 읽기와 쓰기를 구분하기(특화된 작업으로 처리하기) 3. 지연 방식의 데이터 가져오기(필요한 할때 필요한 부분만 읽어 오기) 4. 지연 방식의 표현식 평가(필요할 때에 필요한 값을 평가 하기) 주의점 1. 지연 평가는 만병 통치약이 아니다. 오히려 성능을 나쁘게 할때가 있다.(몰아서 처리 하려고 할때) 개인적인 생각 1. 확실히 미세튜닝으로 성능 향상을 노리는것 보다, 알고리즘을 더 개선시키는게 더 효율적이다.
책 정리/More Effective C++ 1판
2008. 5. 20. 02:52
최근댓글