C++

[C++] 메모리 오버헤드 줄이기

쿼카만지고싶어요 2024. 12. 15. 21:14

1. 람다 식에서 캡쳐를 사용할때, this를 캡쳐하는것이 아닌 필요한 변수들만 캡쳐하기.

 

 

2. 구조체를 생성할때 메모리 작은 순으로 정렬하여 구조체 패딩 줄이기

 

ex)

struct k{

     char k; // 1바이트

     int k; // 4바이트로 8바이트를 만들기 위해 3바이트 패딩 발생

     char k; // 1바이트

}

=> 

 

struct k{

     char k; // 1바이트

     char k; // 1바이트

     int k; // 4바이트로 작은 순서대로 정렬

}

 

 

3. 가상 함수 사용 줄이기

- 가상 테이블이 선언 되면 vtable 8바이트의 메모리 공간이 사용됩니다.

 

 

4. 동적 할당 메모리 사용 줄이기

- new로 동적 할당 되면, 추가 관리 정보를 위해 16바이트 이상의 메모리 공간을 사용합니다. 스택 메모리를 적극 사용해서 힙 메모리에 할당을 줄이는것이 좋습니다.