프로토타입
어떤 클래스의 원형 객체(프로토타입)를 만들어 놓고 그 클래스의 객체가 필요할 때마다 원형 객체를 복제해서 만드는 패턴이다. 이 방식은 속도가 빠르다는 장점이 있는데 서버를 사용하지 않는다면 체감이 되지 않을 수 있다.
서버를 연동하는 방식의 게임에서 처음에 프로토타입을 만들 때 서버에서 데이터를 받아와서 만든다. 그 후부터
그 클래스의 객체를 만들 경우 서버와 연동 필요없이 프로토타입을 복제해서 만들면 되기 때문에 속도가 빠르다.
Release 모드에서 문자열 상수의 주소는 바뀔 수 있다.
map을 사용할 때 key값으로 const char*이나 string을 사용하곤 한다. const char*을 사용할 경우 문자열 상수를 사용한다는 것인데 이 경우 주의해야 할 점이 Release 모드에서 문자열 상수의 주소는 바뀔 수 있다는 것이다. Release 모드는 속도를 우선시하기 떄문이다. 그래서 map의 key값으로 const char*보다 string을 사용하는 것이 낫다.
런타임 중에는 map에 데이터를 집어넣지 말자.
map은 빠른 탐색을 위해 레드 블랙 트리로 이루어져 있다. 그런데 런타임 중에 데이터를 집어넣는다면 레드 블랙 트리는 이진 트리의 균형을 맞추기 위해 데이터를 회전하는 등의 작업을 할 것이고, 이는 자식 노드까지 이어져 프로그램이 굉장히 느려질 수 있다. 그래서 가급적이면 런타임 중에 map에 데이터를 집어넣지 않는 것이 좋다.
'Today I Learned' 카테고리의 다른 글
| 23. 05. 25 - 정점 그리기 (0) | 2023.05.25 |
|---|---|
| 23. 05. 24 - 좌표 변환 (0) | 2023.05.24 |
| 23. 05. 17 - 스레드 관련 함수 (0) | 2023.05.17 |
| 23. 05. 16 - Depth Buffer (0) | 2023.05.16 |
| 23. 05. 15 - 정적 라이브러리와 동적 라이브러리 외 (0) | 2023.05.15 |