String 클래스

이동규·2024년 12월 29일

C++

목록 보기
14/16

구조

포인터, 길이 ,용량으로 구성되어 있다.
길이가 용량보다 커지면 용량을 크게 증가시킨 후 용량에 길이를 복사를 한다.

  1. heap 메모리 할당은 느림
  2. 메모리 단편화 문제
  3. 내부 버퍼 증가는 멀티쓰레드 환경에서 안전하지 않을 수도 있다.
  4. 그래서, 여전히 sprintf와 함께 char[]를 매우 많이 사용한다.

heap 메모리의 한계

연속된 메모리를 사용하면 메모리에 구멍이 생긴다.

해결방법

  1. 메모리압축 (Compaction) 운영체제 또는 메모리 관리 시스템이 흩어진 메모리 조각을 하나로 모아 연속된 메모리 공간을 확보한다.
  2. 메모리 재할당
  3. ssd 스왑을 사용
  4. 가상 메모리와 페이징 활용 운영체제가 가상메모리 시스템을 사용하는 경우, 페이징(Paging) 기술을 통해 연속된 논리 메모리 주소를 물리적으로 흩어진 메모리에 매핑할 수 있다.

0개의 댓글