ในโพสต์นี้ เราจะเข้าใจความแตกต่างระหว่าง Stack และ Heap
กอง
-
เป็นโครงสร้างข้อมูลเชิงเส้น
-
หน่วยความจำถูกจัดสรรในบล็อกที่ต่อเนื่องกัน (ต่อเนื่อง)
-
หน่วยความจำสำหรับสแต็กได้รับการจัดสรรและจัดสรรคืนโดยอัตโนมัติโดยใช้คำแนะนำของคอมไพเลอร์
-
มีค่าใช้จ่ายน้อยกว่าในการสร้างและบำรุงรักษาสแต็ก
-
ใช้งานง่าย
-
มีขนาดคงที่ จึงไม่ยืดหยุ่น
-
ข้อเสียเพียงอย่างเดียวของมันคือ หน่วยความจำไม่เพียงพอ เนื่องจากมีขนาดคงที่
-
หากบล็อกทั้งหมดไม่ว่าง หน่วยความจำก็จะสูญเปล่าเช่นกัน
-
ใช้เวลาน้อยลงในการเข้าถึงองค์ประกอบของสแต็ก
-
มีสถานที่อ้างอิงที่ดีเยี่ยม
กอง
-
เป็นโครงสร้างข้อมูลแบบลำดับชั้น
-
หน่วยความจำจะถูกจัดสรรแบบสุ่ม
-
หน่วยความจำได้รับการจัดสรรและจัดสรรคืนโดยโปรแกรมเมอร์
-
การสร้างและบำรุงรักษากองมีค่าใช้จ่ายสูง
-
การนำโครงสร้างฮีปไปใช้ทำได้ยาก
-
ต้องใช้เวลามากขึ้นในการเข้าถึงองค์ประกอบของฮีป
-
ข้อเสียของฮีปคือการแตกแฟรกเมนต์ของหน่วยความจำ
-
ปรับขนาดได้ในฮีป
-
ทำให้ความจำไม่สูญเปล่า
-
มีสถานที่อ้างอิงเพียงพอ
กระบวนการภายในหน่วยความจำหลัก -