💻프로그래밍 내용 정리/C++17

[C++ 7.3.2] 커스텀 메모리 관리

이이프 2022. 8. 24. 16:16
728x90

커스텀 메모리 관리

C++에서 기본으로 제공하는 메모리 할당 기능만으로도 대부분의 일을 처리할 수 있다.

new와 delete의 내부 처리과정을 보면 메모리를 적절한 크기로 잘라서 전달하고,

현재 메모리에서 사용할 수 있는 공간을 관리하고, 다 쓴 메모리를 해제하는데 필요한 모든 작업을 수행한다.

 

리소스가 부족하거나 메모리 관리와 같은 작업을 할 때는 메모리를 직접 다뤄야 할 수도 있다.

핵심은 클래스에 큰 덩어리의 메모리를 할당해놓고 필요할 때마다 잘라 쓰는 것이다.

 

이렇게 직접 관리하면 오버헤드를 좀 더 줄일 수 있다.

오버헤드란 new로 메모리를 할당하면 현재 프로그램에서 얼마나 할당했는지 기록하는 데 필요한 공간을 말한다.

이렇게 기록해둬야 delete를 호출할 때 딱 필요한 만큼 해제할 수 있다.

크기가 작은 객체가 많거나 사용하는 객체의 수가 엄청나게 많을 때는 이러한 오버헤드가 상당한 영향을 미친다.

 

메모리를 직접 다룰 때 객체의 크기를 사전에 알고 있으면 객체의 크기를 관리할 공간을 줄일 수 있다.

크기가 작은 객체가 아무 많으면 이렇게 절약한 효가가 상당하다.