이 포스트를 만든 목적
- 1부에서 5부까지 나와있는 내용 밖의 이야기들을 정리하려고
이 포스트의 준비물
- Firefox 4.0 beta6 - 웹 서핑 속도는 무척 빨라졌다.
- Winamp v5.572 (x86)
참조 서적
- Modern C++ Design
참조 링크
- http://www.boost.org/doc/libs/1_44_0/libs/pool/doc/index.html - 부스트 라이브러리
- http://loki-lib.sourceforge.net/ - 로키 라이브러리
- http://apr.apache.org/ - apr 라이브러리(메모리 풀이 있다.)
- http://download.dre.vanderbilt.edu/ - ace lib
- http://javawork.egloos.com/1997714 - 3가지 메모리 풀(부스트, 로키, 에이스)와 기본 할당자 등을 비교한 포스트
- http://celdee.tistory.com/638 - 4가지 메모리 풀(부스트, 로키, 에이스, 앙그라)와 기본 할당자 등을 비교한 포스트
내용
책 내용을 한번은 소화하고, 정리했으나, 수많이 내용은 생략(능력 부족으로 표현할 수가 없었다.)하고, 코드로 대체했다. 그 외의 이야기들을 정리하고자, 이 포스트를 만들었다.
이 책에서 말하는 메모리 풀 외의 이야기로는 "설계"가 있다. 이 설계는 메모리 풀을 설계할 때, 정책 기반 클래스(템플릿으로 상태를 변경시킬 수 있는 클래스)로 만드는 것이다. 이 이야기 부분에서 "쓰레드 안정성 확보, Chunk 당 오브젝트 갯수 제한(256개 이하겠지만), 메모리풀이 사용 할 수 있는 오브젝트 최대 크기 제한" 등등 키워드를 얻을 수 있다.
자세한 내용은 책을 통해 보는게 좋겠다. (뒷부분으로 갈 수록 책에 코드가 없고, 개념 설명만 하고 있다.)
메모리 풀을 직접 만드는 것에 대한 개인적인 생각 정리
- 메모리 풀을 만들기 전에, 꼭 메모리 풀이 필요한지 성능 테스를 해야 한다.
- 메모리 풀로 성능이 좋아진다고 장담할 수 없기 때문이다. (코드량 증가는 심한 부담이기 때문이다.)
- 더군다나, OS의 발달, 멀티 쓰레딩 등으로 메모리 풀이 오히려 독이 되기도 한다.
- 만약 메모리 풀이 필요하다면, 공개된 메모리 풀을 찾아 보는게 최선의 방법이다.
- 각종 플랫폼에서, 테스트에서, 피드백에서, 성능에서, 내가 만든것 보다 더 좋기 때문이다.
- 직접 구현할 수밖에 없다면, 몇몇 지인들(회사 사람이나, 같이 공부했던 사람들, 동호회 사람들)에게 피드백을 받아야 한다.
- 대부분의 경우, 프로그램은 목적이 있기 때문에, 같은 목적을 지닌 사람들에게 배포가 되어, 문제가 걷잡을 수 없게 번진다.
여담
- 책 읽는 내내 몇번을 감탄했는지 모르겠다.
- 책 읽는 내내, 사용한다면, 나는 오픈 라이브러리 사용해야지 라는 생각이 머리속을 떠나지 않았다.
- 5장은 1995년에 명명된 Command 패턴과 일반화 함수자의 이야기이다.
- 책의 내용은 정말 감탄 그 자체이다.
'책 정리 > Modern C++ Design' 카테고리의 다른 글
5장, 일반화 함수자(함수 객체) - 5, 일반화 함수자 구현하기 (0) | 2010.11.27 |
---|---|
5장, 일반화 함수자(함수 객체) - 4, 일반화 함수자 구현하기 (0) | 2010.10.13 |
5장, 일반화 함수자(함수 객체) - 3, C++의 호출 가능한 객체들 (0) | 2010.10.09 |
5장, 일반화 함수자(함수 객체)와 Command 패턴 : 2 - Command 패턴은 무엇인가? (0) | 2010.09.29 |
5장, 일반화 함수자(함수 객체)와 Command 패턴 : 1 - 일반화 함수자는 무엇인가? (0) | 2010.09.29 |
4장, 작은 객체에 대한 메모리 할당 : 5 - 메모리 풀에서 할당 기능을 어떻게 만들 것인가? (0) | 2010.09.25 |
4장, 작은 객체에 대한 메모리 할당 : 4 - 메모리 풀에서 할당 기능을 어떻게 만들 것인가? (1) | 2010.09.25 |
4장, 작은 객체에 대한 메모리 할당 - 3 : 메모리 풀에서 할당 기능을 어떻게 만들 것인가? (0) | 2010.09.25 |
4장, 작은 객체에 대한 메모리 할당 - 2 : 어떻게 메모리풀을 만들어야 하는가? (722) | 2010.03.28 |
4장, 작은 객체에 대한 메모리 할당 - 1 : 메모리 풀은 무엇이며, 왜 필요한가? (360) | 2010.03.19 |
최근댓글