이 포스트를 만든 목적 정리 좀 해보려고 이 포스트의 준비물 Firefox 4.0 beta6 Winamp 5.xx - 노래 들으면서 썻기 때문에 :) 참고 서적 Modern C++ Design Effective C++ 3판 C++ Standard Library 튜토리얼 레퍼런스 프로그래머의 길, 멘토에게 묻다 참조 링크 http://dodoubt.tistory.com/125 - std::lower_bound 를 보기 위해서 http://www.cplusplus.com/reference/stl/multimap/lower_bound/ - 위와 마찬가지 내용 4부까지 ChunkGroup 을 구현하는데 초점을 두었다면, 5부터는 ChunkGroup 을 쉽게 사용하는 방법과 인터페이스에 대한 이야기를 한다. Mo..
책 정리/Modern C++ Design 검색 결과
이 포스트를 만든 목적 정리 해보려고 이 포스트의 준비물 Firefox 3.6.10 참고 서적 Modern C++ Design 중 Chapter 4.5 부분 내용 3부에서는 Chunk 를 만들어 보았다면, 4부에서는 Chunk를 그룹화 하여 사용 하는 방법에 대해서 다룬다. 맛보기 코드 #include #include "chunk.hpp" #include class ChunkGroup { public: ~ChunkGroup() { for (int i = 0; i < chunks_.size(); ++i) { delete chunks_[i]; chunks_[i] = NULL; } chunks_.clear(); } ChunkGroup(std::size_t block_size, unsigned char bloc..
이 포스트를 만든 목적 이 포스트는 "Modern C++ Design Chapter 4"를 읽고, 내가 생각한 것과 정리한 것을 기록하기 위한 목적으로 만들었다. 이 포스트의 준비물 FireFox 3.6.10 우선 미리 큰 메모리를 할당/해제 하는 기능을 생각해 보자. 미리 큰 메모리를 할당하는 방법은, 큰 메모리에서 작은 메모리로 쪼개는 방법에 따라서 할당 방법이 달라질 것이므로, 쪼개는 방법을 생각해 보면, 다음과 같을 것이다. 미리 큰 메모리 하나를 할당하고, 이것을 원하는 크기로 쪼개 사용하는 방법 - 단점 : 랜덤하게 쪼갬으로써 할당/해제 로직이 무척 복잡해 진다. - 장점 : 미리 할당한 큰 메모리 사용률이 무척 높다. 미리 큰 메모리 여러개를 할당하고, 이 메모리들을 각각 고정 크기로 쪼개서..
이 포스트를 만든 목적 "Modern C++ Design Chapter 4. 를 정리하기 위해 이 포스트의 준비물 Firefox 3.6.8 참조 서적 Modern Design C++ 내용 1. 어떻게 메모리 풀을 만들어야 하는가? 이 질문에 답하기 위해선, 메모리 할당 작업이 왜 느린지 답해야 할 것이다. 2. 왜 기본 메모리 할당기는 느린가? 기본적은 new 나 malloc 은 OS에게 "나에게 메모리 블럭 좀 줘" 라고 요청을 한다. 이 요청 시간은 큰 블럭이건, 작은 블럭이건 똑같은 시간을 사용한다. 더군다나 OS는 어떠한 할당 요청이 들어 온다 하더라도 동일하게 하드웨어(가상이든 아니든)영역에 구역을 잡아야 하는 일까지 해야 한다. 그래서 기본 메모리 할당은 느리다. 3. 어떻게 메모리 할당 비용..
Purpose-built post 이 포스트는 "Modern C++ Design Chapter 4. 작은 객체에 대한 메모리 할당"을 읽고 내가 이해하기 위해 정리를 하며, 포스트로 남긴 것이다. - 익필 Content 1. 무엇을 메모리 풀 memory pool 이라고 하는가? 메모리 풀을 역활로 정의를 하면, 메모리 할당/해제/용량 최적화 등을 효율적으로 처리해 주는 웅덩이/수영장/도구/장치/관리자 이다. 단어 자체로 정의를 하면, 메모리 저수지 정도로 이해하면 되겠다. pool 이라는 것을 예를 들면, 농업을 들 수 있다. 농작물을 제배하기 위해선, 물이 필요한데, 기후가 변덕을 부리어, 비가 오지 않을 때, 미리 저수지에 모아 두었던 물을 양수기로 퍼올려 농작물에 물을 공급함으로써, 효율적으로 농..
Purpose-built post 이 포스트는 "Modern C++ Design Chapter 3.13 Typelist를 통한 클래스 생성" 내용을 읽고 정리할 목적으로 만들어졌다. 2부 내용은 생성 후 각 타입 객체에 접근하는 방법에 대해서 정리한 것이다, Content 현재 나는 책 내용과 다르게 진행하고 있다. 책에선 FieldHelper 를 함수로 구현하여, 원하는 요소에 접근을 한다. 나도 마찬가지로 함수 형태로 구현하려 했지만, 한가지 불편한 것이 있었다. 바로 함수는 템플릿 특수화가 되지 않는 점이였다. 나는 이 방법을 해결하기 위해 몇가지 생각을 했었다. (이것은 직관력으로 바로 생각해 낸 것이 아니라, 일전에 내가 고민하다가, 어떨결에 생각난 것이다.) 내가 제안하는 방법은 템플릿 특수화..
최근댓글