[Rust] Stack 과 Heap

silver·2023년 4월 13일
0

스택과 힙 둘다 코드상에서 런타임에 사용할 수 있는 메모리의 부분이다.

스택

  • 값을 받아들인 순서대로 값을 저장하고 반대 방향으로 값을 값을 지움(LIFO)
  • 속도가 빠름
    • 새로운 데이터를 넣어두기 위한 공간 혹은 데이터를 가져올 공간을 검색할 필요가 없음
      • 바로 그 공간이 항상 스택의 Top이기 때문
    • 스택에 담긴 모든 데이터가 결정되어 있는 고정되 크기를 가짐

  • 컴파일 타임에 크기가 결정되어 있지 않거나 크기가 변경될 수 있는 데이터를 저장
  • 데이터를 힙에 넣는 방법 (할당 방법)
    1. 저장할 공간이 있는 확인
    2. 운영체제가 커다란 힙 안의 빈 어떤 지점을 찾아서 사용중이라고 표시
    3. 해당 지점의 포인터를 리턴
    4. 포인터는 결정되어 있는 고정된 크기의 값이므로 스택에 포인터를 저장
  • 속도가 느림
    • 포인터가 가르킨 곳을 따라가야 하기 때문

0개의 댓글