บ้าน พัฒนาการ การรวบรวมขยะ (gc) คืออะไร - คำจำกัดความจาก techopedia

การรวบรวมขยะ (gc) คืออะไร - คำจำกัดความจาก techopedia

สารบัญ:

Anonim

คำจำกัดความ - การรวบรวมขยะ (GC) หมายถึงอะไร

Garbage collection (GC) เป็นแนวทางแบบไดนามิกในการจัดการหน่วยความจำอัตโนมัติและการจัดสรรฮีปที่ประมวลผลและระบุบล็อกหน่วยความจำที่ตายแล้วและจัดสรรหน่วยความจำใหม่เพื่อนำมาใช้ซ้ำ วัตถุประสงค์หลักของการรวบรวมขยะคือเพื่อลดการรั่วไหลของหน่วยความจำ

การติดตั้ง GC ต้องใช้สามวิธีหลักดังนี้:

  • Mark-and-sweep - ในกระบวนการเมื่อหน่วยความจำหมด GC จะค้นหาหน่วยความจำที่เข้าถึงได้ทั้งหมดจากนั้นเรียกคืนหน่วยความจำที่มีอยู่
  • จำนวนการอ้างอิง - วัตถุที่จัดสรรมีจำนวนการอ้างอิงของหมายเลขอ้างอิง เมื่อหน่วยความจำนับเป็นศูนย์วัตถุจะเป็นขยะและถูกทำลายไปแล้ว หน่วยความจำที่ว่างกลับสู่ฮีปหน่วยความจำ
  • คัดลอกคอลเล็กชัน - มีสองพาร์ติชันหน่วยความจำ หากพาร์ติชั่นแรกเต็ม, GC จะหาโครงสร้างข้อมูลที่สามารถเข้าถึงได้ทั้งหมดและคัดลอกไปยังพาร์ติชั่นที่สอง, ทำการบีบอัดหน่วยความจำหลังจากกระบวนการ GC และอนุญาตหน่วยความจำว่างอย่างต่อเนื่อง

บางภาษาและแพลตฟอร์มการเขียนโปรแกรมที่มี GC ในตัว (เช่น Java, Lisp, C # และ. Net) จัดการหน่วยความจำรั่วด้วยตัวเองทำให้สามารถเขียนโปรแกรมได้อย่างมีประสิทธิภาพมากขึ้น

Techopedia อธิบายการเก็บขยะ (GC)

แนวทางแบบไดนามิกของ Garbage Collection เพื่อการจัดสรรฮีปอัตโนมัติจะจัดการข้อผิดพลาดทั่วไปและค่าใช้จ่ายสูงซึ่งมักส่งผลให้เกิดข้อบกพร่องของโปรแกรมในโลกแห่งความจริงเมื่อตรวจไม่พบ

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

  • เมื่อเพิ่มหน่วยความจำ GC จะใช้ทรัพยากรในการคำนวณ
  • กระบวนการ GC ไม่สามารถคาดการณ์ได้ทำให้เกิดความล่าช้าในการกระจายเซสชัน
  • เมื่อการอ้างอิงวัตถุที่ไม่ได้ใช้จะไม่ถูกกำจัดด้วยตนเอง GC ทำให้เกิดการรั่วไหลของหน่วยความจำโลจิคัล
  • GC ไม่ทราบว่าเมื่อใดควรดำเนินการภายในสภาพแวดล้อมหน่วยความจำเสมือนของคอมพิวเตอร์เดสก์ท็อปสมัยใหม่
  • กระบวนการ GC โต้ตอบได้ไม่ดีกับแคชและระบบหน่วยความจำเสมือนทำให้เกิดปัญหาในการปรับแต่งประสิทธิภาพ
คำจำกัดความนี้ถูกเขียนในบริบทของการเขียนโปรแกรมทั่วไป
การรวบรวมขยะ (gc) คืออะไร - คำจำกัดความจาก techopedia