SSO

2025. 3. 26. 17:29C++

SSO(Small String Optimization)

std::string이 짧은 문자열을 저장할 때 힙 할당을 피하고 내부 버퍼(Stack 또는 inline buffer)를 사용하여 저장하는 최적화 기법

 

보통 15자 이하의 문자열 + NULL(컴파일러 및 구현에 따라 다름)은 힙을 사용하지 않고 스택(Stack)에 저장

동적 할당을 피해서 속도를 높이고, 메모리 사용을 줄임.

 

  • 장점

성능 향상 : 동적 할당을 피해서 빠름

메모리 절약 : 짧은 문자열은 추가적인 힙 할당 없이 std::string 내부에서 해결

캐시 친화적 : 스택을 사용하므로 CPU 캐시에 적중할 가능성이 높아 속도가 빠름.

  • 단점

SSO 버퍼 크기 제한 : 특정 크기(15자) 초과 시 힙 사용.

C++ 표준에서 강제되지 않음: 모든 컴파일러에서 적용되는 것은 아님(하지만 대부분 모든 구현에 사용).

'C++' 카테고리의 다른 글

참조자(Reference)  (0) 2025.03.27
union  (0) 2025.03.26
소멸자(destructor)  (0) 2025.03.26
힙 / 스택  (0) 2025.03.25
cin  (0) 2025.03.21