728x90
커스텀 메모리 관리
C++에서 기본으로 제공하는 메모리 할당 기능만으로도 대부분의 일을 처리할 수 있다.
new와 delete의 내부 처리과정을 보면 메모리를 적절한 크기로 잘라서 전달하고,
현재 메모리에서 사용할 수 있는 공간을 관리하고, 다 쓴 메모리를 해제하는데 필요한 모든 작업을 수행한다.
리소스가 부족하거나 메모리 관리와 같은 작업을 할 때는 메모리를 직접 다뤄야 할 수도 있다.
핵심은 클래스에 큰 덩어리의 메모리를 할당해놓고 필요할 때마다 잘라 쓰는 것이다.
이렇게 직접 관리하면 오버헤드를 좀 더 줄일 수 있다.
오버헤드란 new로 메모리를 할당하면 현재 프로그램에서 얼마나 할당했는지 기록하는 데 필요한 공간을 말한다.
이렇게 기록해둬야 delete를 호출할 때 딱 필요한 만큼 해제할 수 있다.
크기가 작은 객체가 많거나 사용하는 객체의 수가 엄청나게 많을 때는 이러한 오버헤드가 상당한 영향을 미친다.
메모리를 직접 다룰 때 객체의 크기를 사전에 알고 있으면 객체의 크기를 관리할 공간을 줄일 수 있다.
크기가 작은 객체가 아무 많으면 이렇게 절약한 효가가 상당하다.
'💻프로그래밍 내용 정리 > C++17' 카테고리의 다른 글
[C++ 7.3.4] 객체 풀 (0) | 2022.08.24 |
---|---|
[C++ 7.3.3] 가비지 컬렉션 (0) | 2022.08.24 |
[C++ 7.3.1] 포인터 연산 (0) | 2022.08.24 |
[C++ 7.2.2] 포인터와 배열2 (0) | 2022.08.24 |
[C++ 7.2.1] 배열과 포인터 (0) | 2022.08.24 |