스택 메모리
스택 메모리는 마지막 첫 번째 (LIFO) 데이터 구조입니다. 일반적으로 하위 메모리 주소에 위치하며 함수 또는 블록에 로컬 인 임시 데이터를 할당하는 데 사용됩니다. 함수 또는 블록이 입력되면 로컬 변수 및 기능 매개 변수가 스택에 푸시됩니다. 함수가 반환되거나 블록 종료되면 데이터가 스택에서 튀어 나옵니다.
스택은 일반적으로 CPU에 캐시되기 때문에 메모리 액세스 영역이 더 빠릅니다. 그러나 제한된 리소스이기도합니다. 스택에 너무 많은 데이터를 할당하면 스택 오버 플로우가 발생할 수 있습니다.
힙 메모리
힙 메모리는 동적으로 할당 된 메모리 영역입니다. '새'연산자 또는 malloc ()와 같은 함수를 사용하여 런타임에 생성 된 개체를 할당하는 데 사용됩니다. 스택과 달리 힙에는 고정 크기가 없습니다. 힙에 할당 된 데이터는 일반적으로 스택에 저장된 데이터보다 일반적으로 수명이 길다. 'delete'연산자 또는 free () 함수를 사용하여 명시 적으로 거래 될 때까지 할당되어 있습니다. 힙 메모리를 처리하지 않으면 메모리 누출이 발생하여 성능 문제와 시스템 충돌이 발생할 수 있습니다.
메모리 모델
스택 및 힙 메모리 모델은 운영 체제의 가상 메모리 관리 시스템에 대한 추상화입니다. 그것은 메모리를 관리하는 효율적인 방법을 제공하고 다른 프로세스가 서로의 메모리를 덮어 쓰지 않도록합니다.
더 느린 힙 할당
힙 할당은 일반적으로 메모리 관리 구조에서 사용 가능한 메모리를 검색하는 데 시스템이 필요하기 때문에 스택 할당보다 느리게 이루어집니다. 반면에 스택 할당은 단순히 고정 메모리 영역에서 데이터를 밀고 팝업하는 문제입니다.
기본 프로그램 위치
응용 프로그램의 주요 프로그램은 일반적으로 HEAP에서 실행됩니다. 주요 함수는 글로벌 기능이고 데이터의 데이터가 특정 함수 또는 블록에 국한적이지 않기 때문입니다.
메모리 조건에서
가 스택 메모리가 부족하여 심각한 결과를 초래할 수 있습니다. 스택 오버 플로우로 인해 프로그램이 충돌 할 수 있지만 힙 메모리가 부족하면 'BAD_ALLOC'예외가 발생할 수 있습니다. 이러한 조건을 피하기 위해 메모리 사용을 신중하게 관리하는 것이 중요합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3