SlideShare a Scribd company logo
1 of 13
C++ 게임의 최적화 GPG2권  구경원(돼지고기) 6월25일
C++ 게임의 최적화 - 프로파일링의 중요성 ,[object Object]
최적화를 했는데도 속도가 떨어지는 경우. -자주 호출되는 코드에 대한 최적화.
객체가 필요하게 되기 전까지는 생성하지 말 것 void Function(intarg)	 { Object obj; if(arg == 0) 	return; … } arg가 0 일때에도Object 객체 생성. 필요한 선언을 최대한 뒤로 미루자. 반복문일 경우는 루프 밖에 객체를 선언하자.
초기화 목록을 사용할 것 Class Vehicle { public: Vehicle(const std::string &name)      {          m_Name = name;     } 	private: 	std::string m_Name;	 } Vehicle  생성자호출전string m_Name에 대한 생성자 호출. m_Name = name 의 복사대입 연사자 호출. Vehicle 기본생성자도 메모리에 할당할 수 있다. Class Vehicle { 	public: 	Vehicle(const std::string &name) 		: m_Name(name) 	private: 	std::string m_Name;	 }
후증가 보다는 전증가를 사용할 것 x++ 자기 자신의 복사본을 생성한 후 값을 넘긴다. ++x   자기 자신을 증가시킨 후 넘긴다. for 문같은반복문에서는전증가 사용이 좋다. Const int Value = *this; ++(*this); Return Value; *this += 1; Return *this;
값을 반환하는 연산자를 피할 것 Vector operator+(const Vector &v1, const Vector &v2) V = v1 + v2; Vector의 임시객체를 생성하고 복사(값으로 반환) 하는 추가적인 부담을 야기시킨다. Void Vector::Add(const Vector &v1, const Vector &v2) V = v1.Add(v2); 첫번째 인자를 즉시 수정하여 사용하기 때문에 임시객체를 반환할 필요 가 없다.
가벼운 생성자를 사용할 것 - 생성자가 호출될 때 마다 초기화가 필요하지 않는 변수들도 초기화가 일어난다. - 자주 사용되는 행렬이나 벡터는 초기화 함수로 따로 관리하자. ,[object Object],	private 로 선언하자. - 내부적인 임시객체 생성을 방지하기 위해서 explicit를 선언하는 습관을 들이자.
객체를 미리 할당하고 캐싱할 것 ,[object Object],배열. 리스트. 맵. 등의 자료구조를 이용해서 미리 필요한  데이터를 할당하고 사용이 필요할때에 데이터를 가져와서  사용하고, 사용이 다된 객체는 다시 돌려보낸다.
메모리 관리 ,[object Object]
힙메모리 단편화를 주의하자.- 메모리를 미리 할당하자.
가상 함수 가상함수 호출-> 가상함수 테이블 참조 -> 멤버함수 포인터얻기-> 멤버함수 호출. 추가적인 오버헤드 발생. 작고 자주 쓰이는 객체들은 클래스 상속구조를 사용하지 말 고 상속 구조에서 독립 시키자.
코드 크기 - 실행파일을 최대한 작게 만들자. - 예외를 발생시키는 코드를 제거. - 쓰이지 않는 함수와 클래스를 빌드에서 제외 - 컴파일러 최적화 수준을 높게 설정한다. ,[object Object],- 인라인 함수의 사용 주의. - RTTI와 dynamic_cast의 사용 자제.

More Related Content

What's hot

[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기Sang Heon Lee
 
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안Jeongsang Baek
 
쉽게 쓰여진 Django
쉽게 쓰여진 Django쉽게 쓰여진 Django
쉽게 쓰여진 DjangoTaehoon Kim
 
Springcamp spring boot intro
Springcamp spring boot introSpringcamp spring boot intro
Springcamp spring boot introJae-il Lee
 
Share some development
Share some developmentShare some development
Share some developmentJi Heon Kim
 
Python server-101
Python server-101Python server-101
Python server-101Huey Park
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기Huey Park
 
Clojure/Chapter3
Clojure/Chapter3Clojure/Chapter3
Clojure/Chapter3destinycs
 
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)LanarkSeung
 
Node.js 팀 스터디 발표자료.
Node.js 팀 스터디 발표자료.Node.js 팀 스터디 발표자료.
Node.js 팀 스터디 발표자료.SeungWoo Lee
 
Nodejs 발표자료
Nodejs 발표자료Nodejs 발표자료
Nodejs 발표자료shanka2
 
Rb vs wp 로드타임 성능비교
Rb vs wp 로드타임 성능비교Rb vs wp 로드타임 성능비교
Rb vs wp 로드타임 성능비교Gitaek kwon
 
안드로이드 DB, 서버 연동하기
안드로이드 DB, 서버 연동하기안드로이드 DB, 서버 연동하기
안드로이드 DB, 서버 연동하기은아 정
 
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
Ryan Dahl의 Node.js 소개 동영상 해설 by doorttsRyan Dahl의 Node.js 소개 동영상 해설 by doortts
Ryan Dahl의 Node.js 소개 동영상 해설 by doorttsSuwon Chae
 
Leadweb Nodejs
Leadweb NodejsLeadweb Nodejs
Leadweb Nodejs근호 최
 
NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션흥배 최
 

What's hot (20)

[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기
 
Node.js intro
Node.js introNode.js intro
Node.js intro
 
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
 
쉽게 쓰여진 Django
쉽게 쓰여진 Django쉽게 쓰여진 Django
쉽게 쓰여진 Django
 
Springcamp spring boot intro
Springcamp spring boot introSpringcamp spring boot intro
Springcamp spring boot intro
 
Share some development
Share some developmentShare some development
Share some development
 
전처리기
전처리기전처리기
전처리기
 
Python server-101
Python server-101Python server-101
Python server-101
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기
 
Clojure/Chapter3
Clojure/Chapter3Clojure/Chapter3
Clojure/Chapter3
 
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
 
Node.js 팀 스터디 발표자료.
Node.js 팀 스터디 발표자료.Node.js 팀 스터디 발표자료.
Node.js 팀 스터디 발표자료.
 
Nodejs 발표자료
Nodejs 발표자료Nodejs 발표자료
Nodejs 발표자료
 
Rb vs wp 로드타임 성능비교
Rb vs wp 로드타임 성능비교Rb vs wp 로드타임 성능비교
Rb vs wp 로드타임 성능비교
 
안드로이드 DB, 서버 연동하기
안드로이드 DB, 서버 연동하기안드로이드 DB, 서버 연동하기
안드로이드 DB, 서버 연동하기
 
Node.js in Flitto
Node.js in FlittoNode.js in Flitto
Node.js in Flitto
 
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
Ryan Dahl의 Node.js 소개 동영상 해설 by doorttsRyan Dahl의 Node.js 소개 동영상 해설 by doortts
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
 
Leadweb Nodejs
Leadweb NodejsLeadweb Nodejs
Leadweb Nodejs
 
NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션
 

Viewers also liked

선형연립방정식 가우스소거법
선형연립방정식 가우스소거법선형연립방정식 가우스소거법
선형연립방정식 가우스소거법KyeongWon Koo
 
[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬KyeongWon Koo
 
[페차쿠차] 3월 19일 아이디어에 미쳐보자!
[페차쿠차] 3월 19일 아이디어에 미쳐보자![페차쿠차] 3월 19일 아이디어에 미쳐보자!
[페차쿠차] 3월 19일 아이디어에 미쳐보자!KyeongWon Koo
 
제5장 스태틱 메쉬
제5장 스태틱 메쉬제5장 스태틱 메쉬
제5장 스태틱 메쉬KyeongWon Koo
 
[Gpg2권 구경원] 3.1 ai전략
[Gpg2권 구경원] 3.1 ai전략[Gpg2권 구경원] 3.1 ai전략
[Gpg2권 구경원] 3.1 ai전략KyeongWon Koo
 
[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기
[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기
[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기KyeongWon Koo
 
[Gpg2권 구경원] 3.4 rts 게임의 명령 큐잉을 위한 기반 구조
[Gpg2권 구경원] 3.4 rts 게임의 명령 큐잉을 위한 기반 구조[Gpg2권 구경원] 3.4 rts 게임의 명령 큐잉을 위한 기반 구조
[Gpg2권 구경원] 3.4 rts 게임의 명령 큐잉을 위한 기반 구조KyeongWon Koo
 
역동적인 애니메이션 Ik
역동적인 애니메이션 Ik역동적인 애니메이션 Ik
역동적인 애니메이션 IkKyeongWon Koo
 
[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리KyeongWon Koo
 
[0204 구경원] sse 병렬 프로그래밍
[0204 구경원] sse 병렬 프로그래밍[0204 구경원] sse 병렬 프로그래밍
[0204 구경원] sse 병렬 프로그래밍KyeongWon Koo
 
빌드 속도를 올려보자
빌드 속도를 올려보자빌드 속도를 올려보자
빌드 속도를 올려보자KyeongWon Koo
 

Viewers also liked (12)

선형연립방정식 가우스소거법
선형연립방정식 가우스소거법선형연립방정식 가우스소거법
선형연립방정식 가우스소거법
 
[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬
 
[페차쿠차] 3월 19일 아이디어에 미쳐보자!
[페차쿠차] 3월 19일 아이디어에 미쳐보자![페차쿠차] 3월 19일 아이디어에 미쳐보자!
[페차쿠차] 3월 19일 아이디어에 미쳐보자!
 
[데브루키] FOG
[데브루키] FOG[데브루키] FOG
[데브루키] FOG
 
제5장 스태틱 메쉬
제5장 스태틱 메쉬제5장 스태틱 메쉬
제5장 스태틱 메쉬
 
[Gpg2권 구경원] 3.1 ai전략
[Gpg2권 구경원] 3.1 ai전략[Gpg2권 구경원] 3.1 ai전략
[Gpg2권 구경원] 3.1 ai전략
 
[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기
[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기
[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기
 
[Gpg2권 구경원] 3.4 rts 게임의 명령 큐잉을 위한 기반 구조
[Gpg2권 구경원] 3.4 rts 게임의 명령 큐잉을 위한 기반 구조[Gpg2권 구경원] 3.4 rts 게임의 명령 큐잉을 위한 기반 구조
[Gpg2권 구경원] 3.4 rts 게임의 명령 큐잉을 위한 기반 구조
 
역동적인 애니메이션 Ik
역동적인 애니메이션 Ik역동적인 애니메이션 Ik
역동적인 애니메이션 Ik
 
[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리
 
[0204 구경원] sse 병렬 프로그래밍
[0204 구경원] sse 병렬 프로그래밍[0204 구경원] sse 병렬 프로그래밍
[0204 구경원] sse 병렬 프로그래밍
 
빌드 속도를 올려보자
빌드 속도를 올려보자빌드 속도를 올려보자
빌드 속도를 올려보자
 

Similar to [Gpg2권]1.1 c++ 게임의 최적화

Api design for c++ ch3 pattern
Api design for c++ ch3 patternApi design for c++ ch3 pattern
Api design for c++ ch3 patternjinho park
 
Api design for c++ pattern
Api design for c++ patternApi design for c++ pattern
Api design for c++ patternjinho park
 
V8 engine internal
V8 engine internalV8 engine internal
V8 engine internalJinhyuck Kim
 
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)MIN SEOK KOO
 
모어이펙티브 C++ 3,4장 예외, 효율 스터디
모어이펙티브 C++ 3,4장 예외, 효율 스터디모어이펙티브 C++ 3,4장 예외, 효율 스터디
모어이펙티브 C++ 3,4장 예외, 효율 스터디quxn6
 
Effective c++chapter3
Effective c++chapter3Effective c++chapter3
Effective c++chapter3성연 김
 
Effective c++ 챕터 2 정리
Effective c++ 챕터 2 정리Effective c++ 챕터 2 정리
Effective c++ 챕터 2 정리연우 김
 
Effective c++ chapter 1,2 요약
Effective c++ chapter 1,2 요약Effective c++ chapter 1,2 요약
Effective c++ chapter 1,2 요약Nam Hyeonuk
 
More effective c++ chapter1,2
More effective c++ chapter1,2More effective c++ chapter1,2
More effective c++ chapter1,2문익 장
 
Effective c++(chapter 5,6)
Effective c++(chapter 5,6)Effective c++(chapter 5,6)
Effective c++(chapter 5,6)문익 장
 
Swift3 subscript inheritance initialization
Swift3 subscript inheritance initializationSwift3 subscript inheritance initialization
Swift3 subscript inheritance initializationEunjoo Im
 
More effective c++ 3
More effective c++ 3More effective c++ 3
More effective c++ 3현찬 양
 
Jdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamicJdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamicknight1128
 
포트폴리오에서 사용한 모던 C++
포트폴리오에서 사용한 모던 C++포트폴리오에서 사용한 모던 C++
포트폴리오에서 사용한 모던 C++KWANGIL KIM
 
게임프로그래밍입문 7
게임프로그래밍입문 7게임프로그래밍입문 7
게임프로그래밍입문 7Yeonah Ki
 
HolubOnPatterns/chapter3_3
HolubOnPatterns/chapter3_3HolubOnPatterns/chapter3_3
HolubOnPatterns/chapter3_3suitzero
 
Mec++ chapter3,4
Mec++ chapter3,4Mec++ chapter3,4
Mec++ chapter3,4문익 장
 
Effective c++ Chapter1,2
Effective c++ Chapter1,2Effective c++ Chapter1,2
Effective c++ Chapter1,2문익 장
 
Effective c++chapter1 and2
Effective c++chapter1 and2Effective c++chapter1 and2
Effective c++chapter1 and2성연 김
 
[IT기술칼럼#2] 고급자바스크립트 for AngularJS, React_고급자바스크립트,AngularJS,React전문교육학원
[IT기술칼럼#2] 고급자바스크립트 for AngularJS, React_고급자바스크립트,AngularJS,React전문교육학원[IT기술칼럼#2] 고급자바스크립트 for AngularJS, React_고급자바스크립트,AngularJS,React전문교육학원
[IT기술칼럼#2] 고급자바스크립트 for AngularJS, React_고급자바스크립트,AngularJS,React전문교육학원탑크리에듀(구로디지털단지역3번출구 2분거리)
 

Similar to [Gpg2권]1.1 c++ 게임의 최적화 (20)

Api design for c++ ch3 pattern
Api design for c++ ch3 patternApi design for c++ ch3 pattern
Api design for c++ ch3 pattern
 
Api design for c++ pattern
Api design for c++ patternApi design for c++ pattern
Api design for c++ pattern
 
V8 engine internal
V8 engine internalV8 engine internal
V8 engine internal
 
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
 
모어이펙티브 C++ 3,4장 예외, 효율 스터디
모어이펙티브 C++ 3,4장 예외, 효율 스터디모어이펙티브 C++ 3,4장 예외, 효율 스터디
모어이펙티브 C++ 3,4장 예외, 효율 스터디
 
Effective c++chapter3
Effective c++chapter3Effective c++chapter3
Effective c++chapter3
 
Effective c++ 챕터 2 정리
Effective c++ 챕터 2 정리Effective c++ 챕터 2 정리
Effective c++ 챕터 2 정리
 
Effective c++ chapter 1,2 요약
Effective c++ chapter 1,2 요약Effective c++ chapter 1,2 요약
Effective c++ chapter 1,2 요약
 
More effective c++ chapter1,2
More effective c++ chapter1,2More effective c++ chapter1,2
More effective c++ chapter1,2
 
Effective c++(chapter 5,6)
Effective c++(chapter 5,6)Effective c++(chapter 5,6)
Effective c++(chapter 5,6)
 
Swift3 subscript inheritance initialization
Swift3 subscript inheritance initializationSwift3 subscript inheritance initialization
Swift3 subscript inheritance initialization
 
More effective c++ 3
More effective c++ 3More effective c++ 3
More effective c++ 3
 
Jdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamicJdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamic
 
포트폴리오에서 사용한 모던 C++
포트폴리오에서 사용한 모던 C++포트폴리오에서 사용한 모던 C++
포트폴리오에서 사용한 모던 C++
 
게임프로그래밍입문 7
게임프로그래밍입문 7게임프로그래밍입문 7
게임프로그래밍입문 7
 
HolubOnPatterns/chapter3_3
HolubOnPatterns/chapter3_3HolubOnPatterns/chapter3_3
HolubOnPatterns/chapter3_3
 
Mec++ chapter3,4
Mec++ chapter3,4Mec++ chapter3,4
Mec++ chapter3,4
 
Effective c++ Chapter1,2
Effective c++ Chapter1,2Effective c++ Chapter1,2
Effective c++ Chapter1,2
 
Effective c++chapter1 and2
Effective c++chapter1 and2Effective c++chapter1 and2
Effective c++chapter1 and2
 
[IT기술칼럼#2] 고급자바스크립트 for AngularJS, React_고급자바스크립트,AngularJS,React전문교육학원
[IT기술칼럼#2] 고급자바스크립트 for AngularJS, React_고급자바스크립트,AngularJS,React전문교육학원[IT기술칼럼#2] 고급자바스크립트 for AngularJS, React_고급자바스크립트,AngularJS,React전문교육학원
[IT기술칼럼#2] 고급자바스크립트 for AngularJS, React_고급자바스크립트,AngularJS,React전문교육학원
 

[Gpg2권]1.1 c++ 게임의 최적화

  • 1. C++ 게임의 최적화 GPG2권 구경원(돼지고기) 6월25일
  • 2.
  • 3. 최적화를 했는데도 속도가 떨어지는 경우. -자주 호출되는 코드에 대한 최적화.
  • 4. 객체가 필요하게 되기 전까지는 생성하지 말 것 void Function(intarg) { Object obj; if(arg == 0) return; … } arg가 0 일때에도Object 객체 생성. 필요한 선언을 최대한 뒤로 미루자. 반복문일 경우는 루프 밖에 객체를 선언하자.
  • 5. 초기화 목록을 사용할 것 Class Vehicle { public: Vehicle(const std::string &name) { m_Name = name; } private: std::string m_Name; } Vehicle 생성자호출전string m_Name에 대한 생성자 호출. m_Name = name 의 복사대입 연사자 호출. Vehicle 기본생성자도 메모리에 할당할 수 있다. Class Vehicle { public: Vehicle(const std::string &name) : m_Name(name) private: std::string m_Name; }
  • 6. 후증가 보다는 전증가를 사용할 것 x++ 자기 자신의 복사본을 생성한 후 값을 넘긴다. ++x 자기 자신을 증가시킨 후 넘긴다. for 문같은반복문에서는전증가 사용이 좋다. Const int Value = *this; ++(*this); Return Value; *this += 1; Return *this;
  • 7. 값을 반환하는 연산자를 피할 것 Vector operator+(const Vector &v1, const Vector &v2) V = v1 + v2; Vector의 임시객체를 생성하고 복사(값으로 반환) 하는 추가적인 부담을 야기시킨다. Void Vector::Add(const Vector &v1, const Vector &v2) V = v1.Add(v2); 첫번째 인자를 즉시 수정하여 사용하기 때문에 임시객체를 반환할 필요 가 없다.
  • 8.
  • 9.
  • 10.
  • 11. 힙메모리 단편화를 주의하자.- 메모리를 미리 할당하자.
  • 12. 가상 함수 가상함수 호출-> 가상함수 테이블 참조 -> 멤버함수 포인터얻기-> 멤버함수 호출. 추가적인 오버헤드 발생. 작고 자주 쓰이는 객체들은 클래스 상속구조를 사용하지 말 고 상속 구조에서 독립 시키자.
  • 13.
  • 14. 표준 템플릿 라이브러리 - STL set() 을 사용하려면 STL vector() 을 사용하자. Set() 을 사용하면 적-흑 트리에 기반하여 해당하는 노드를 찾아야 한다. 트리의노드들은 여기 저기 흩어져 있을 수 있으므로 캐시미스가 발생할 수도 있다.