C++ Memory Pools and Angra
윈도우 7의 LFH(Low Fragmented Heap)의 성능은 매우 좋은 편에 속한다. 개발 플랫폼을 윈도우 7으로 한정한다면, 기본 메모리 할당기만 써도 성능에 손해보는 일은 없을 것이다. 그러나, 플랫폼에서 LFH와 같은 쓸만한 힙 매니저를 제공하지 않는다면, 효과적으로 메모리를 관리하기 위해 잘 구현된 메모리 할당기가 필요하다. 대표적으로, boost, ACE, Loki는 간단하게 쓸 수 있는 메모리풀을 제공한다. 먼저, boost::singleton_pool은 부스트 풀 라이브러리(boost pool library)에 기반한 싱글턴 타입의 메모리 할당기이다. SSS(Simple Segregated Storage)라는 메커니즘을 바탕으로, 대량의 순차 할당, 반환 및 무작위 할당, 반환과 같은 ..
더보기
Fields
인테그랄 도메인(integral domain)은 zero divisors를 가지지 않기 때문에, 0이 아닌 요소들의 집합은 곱셈에 대해 닫혀있다. 그러므로, 곱셈은 이 0이 아닌 집합에서의 연산이며, 자연스럽게 이것이 군(group)인지 의문이 생기게 된다. 곱셈은 링(ring)에서 결합 법칙이 성립해야 하고, 여기서 정의하고자 하는 연산은 결합 법칙이 성립해야 한다. 또, 인테그랄 도메인은 항등원을 가지기 때문에 이 연산은 항등원을 가져야 한다. 따라서, 곱셈에 대해서, 0이 아닌 원소를 집합으로 하는 인테그랄 도메인은 역원의 부재 때문에 군이 될 수 없다. 인테그랄 도메인에서, 예를 들어, 0이 아닌 원소들은 단지 1과 -1만 역원을 가지기 때문에, 곱셈에 대해서 군을 형성하지 못한다. 그러나, 유리..
더보기