반응형
SLT 컨테이너의 목적
모든 컨테이너에 적용되는 표준 인터페이스가 존재합니다. std 알고리듬은 많은 컨테이너에서 작동합니다. 템플릿 프로그래밍 기반이며, 메모리를 자동 관리해줍니다.
인터페이스 문제점
모든 컨테이너에 같은 인터페이스가 적용되는 것은 이상하다고 할 수 있습니다. 극단적으로 개체 지향 프로그래밍을 추구한 사례라고도 할 수 있습니다.
메모리 단편화
빈번한 메모리 재할당은 메모리 단편화를 초래할 수 있습니다. 메모리 단편화는 엄청난 문제가 될 수 있습니다. 특히 가상 메모리를 지원하지 않는 플랫폼에서 프로그램을 실행할 때, 문제가 야기될 수 있습니다.
결국, 메모리 단편화 때문에 애플리케이션이 죽을 수 있습니다. 즉, 총 여유 공간은 충분하나 충분히 큰 연속되는 메모리가 없는 경우에 일어날 수 있습니다.
이러한 문제는 디버깅을 하거나, 문제점을 발견하기 쉽지 않습니다.
STL 대체품?
많은 회사들이 이러한 문제를 극복하기 위해 자신만의 컨테이너를 만들어 STL을 대체하였습니다. EA가 만든 EASTL은 STL과 호환됩니다. 이 것은 메모리 문제 등을 고친 컨테이너라 할 수 있습니다. Epic Games는 STL보다 나은 인터페이스로 구연한 언리얼만의 컨테이너입니다. EA STL과 언리얼 엔진 4는 모두 오픈 소스라고 합니다. 직접, 컨테이너를 만들어 보면 메모리 관리에 대한 이해를 높일 수 있습니다.
반응형
'SW > C++' 카테고리의 다른 글
C++ : thread : detach, joinable : 사용법, 예제, 개념 (0) | 2020.03.17 |
---|---|
C++ : thread : get_id() : 사용법, 구하는 법, 예제 (0) | 2020.03.16 |
C++11 : Threading 라이브러리 ( 쓰레드 구현, 사용 방법 ) (0) | 2019.12.23 |
c++ : istreambuf_iterator와 istream_iterator의 차이점 (0) | 2019.08.23 |
C++ : 출력 : 개념, 예제, 활용, 사용법 (0) | 2019.06.02 |