이이프
IeF 제멋대로 세상
이이프
전체 방문자
오늘
어제

공지사항

  • ✔ Info
  • 전체 글보기 (56)
    • 💻프로그래밍 내용 정리 (55)
      • C (0)
      • C++17 (55)
    • 💻게임메이커 (0)
    • 💻언리얼엔진 (0)
    • 💻유니티 (0)
    • 🎈[팀&자작]게임소개 (0)
    • 📃게임제작기술 (0)
    • 🎨그림놀이 (0)
    • 📒대학생활 (0)
    • 😃잡담 (1)
    • 🕹게임성과 (0)
    • 💷자격증 (0)

블로그 메뉴

  • 방명록

최근 글

최근 댓글

티스토리

hELLO · Designed By 정상우.
이이프

IeF 제멋대로 세상

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

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

2022. 8. 24. 16:16
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
    '💻프로그래밍 내용 정리/C++17' 카테고리의 다른 글
    • [C++ 7.3.4] 객체 풀
    • [C++ 7.3.3] 가비지 컬렉션
    • [C++ 7.3.1] 포인터 연산
    • [C++ 7.2.2] 포인터와 배열2
    이이프
    이이프
    게임 프로그래머 지망생 / Since 2022.08.14

    티스토리툴바