성능을 위한 메모리 사용 tip
- page 가 4kb 인 이유는 적당한 크기라서 이다. Page 의 크기는 CPU에 종속된다 (MMU).
- 보통은 4kb 1mb 2mb 4mb
- page 단위가 1byte 인경우 메모리 속성 (실행, read, write) 를 지정하는데 반절이 날아감.
- 1대1 에 대응하는만큼 메모리가 필요하기 때문
- 단위로 묶어서 속성을 정한다.
- OS kernel의 mm 은 보통 4kb 를 할당해준다.
- 임의의 덩어리 메모리를 쪼개서 다양한 사이즈의 메모리 블록으로 사용할 수 있돌고 하자. → Heap
Windows의 메모리 할당

- Virtual Alloc
- 주소공간을 예약 - reserve
- 물리 메모리 커밋후 반환 - commit
- c, c++ 로 테스트를 해보면 windows 에서는 reserve 와 commit 이 동시에 이루어진다.
Heap 메모리
- 큰 덩어리의 메모리부터 다양한 사이즈의 메모리 블록을 할당
- 해제 시 인접한 블록 병합할 수 있으며 병합하여 더 큰 메모리 블록을 유지.
- 대부분의 메모리 관리 시스템이 heap based.
메모리 버킷






- 구현에 따라 다를 수 있다.
- 헤드랑 테일을 쉐도우 카피 식으로 다른곳에 둘 수 있다.
Heap의 성능 문제
- 적합한 사이즈의 믈록 찾기
- 해제 시 병합 비용
- 단편화
- Commit 비용