Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

ความแตกต่างระหว่าง Stack และ Heap


Stack

  • Linear Data Structure
  • Memory จัดสรรแบบ Contiguous (ติดกัน)
  • Allocate/Deallocate อัตโนมัติโดย Compiler
  • ต้นทุนต่ำ ง่ายต่อการ Implement
  • Fixed Size ไม่ยืดหยุ่น
  • ข้อเสีย: ขาด Memory (เพราะ Fixed Size)
  • ถ้าไม่เต็ม Memory ก็ Waste
  • Access เร็ว Locality of Reference ดีเยี่ยม

Heap

  • Hierarchical Data Structure
  • Memory จัดสรรแบบ Random
  • Allocate/Deallocate ด้วยมือโดย Programmer
  • ต้นทุนสูง ยากต่อการ Implement
  • Access ช้ากว่า
  • ข้อเสีย: Memory Fragmentation
  • Resize ได้ → Memory ไม่ Waste
  • Locality of Reference พอสมควร

Process ใน Main Memory

ความแตกต่างระหว่าง Stack และ Heap