# Garbage Collection คืออะไร มีประโยชน์อย่างไร ใช้งานตอนไหน อธิบายแบบง่ายที่สุด แบบเด็ก 8 ปีก็เข้าใจ
เราทุกคนรู้จักการทิ้งขยะในชีวิตประจำวัน แต่คุณรู้หรือไม่ว่าในโลกของการเขียนโปรแกรม ก็มีการทิ้งขยะเช่นกัน? ในบทความนี้ เราจะมาทำความเข้าใจกับ "Garbage Collection" หรือกระบวนการจัดการขยะในโปรแกรม ซึ่งจะช่วยให้โปรแกรมของเราทำงานได้อย่างเรียบร้อยและมีประสิทธิภาพยิ่งขึ้น
ลองนึกว่าเราเป็นช่างอัจฉริยะที่สร้างหุ่นยนต์ขึ้นมา หุ่นยนต์เหล่านี้สามารถทำหลายอย่างได้ เช่น ขับรถ ทำความสะอาดบ้าน หรือแม้กระทั่งเขียนโปรแกรม! แต่หลังจากที่เราใช้หุ่นยนต์เหล่านี้ไปซักระยะหนึ่ง เราก็จะพบว่ามีชิ้นส่วนบางอย่างที่ไม่จำเป็นแล้วเกิดขึ้นมาในห้องทำงานของเรา อาทิเช่น น็อต เศษเหล็ก หรือชิ้นส่วนที่เสียหาย หากเราไม่ทำความสะอาด ห้องทำงานจะเต็มไปด้วยขยะจนเดินไม่ได้ ในโลกของคอมพิวเตอร์ สิ่งเหล่านี้เปรียบเสมือน "ขยะ" ที่โปรแกรมใช้งานแล้วไม่ต้องการอีกต่อไป ซึ่งก็คือหน้าที่ของระบบ Garbage Collection ที่จะช่วยจัดการกับ"ขยะ"เหล่านี้
Garbage Collection ช่วยให้หน่วยความจำในคอมพิวเตอร์ของเราถูกใช้งานอย่างมีประสิทธิภาพ เมื่อขยะถูกเก็บไป ก็จะทำให้มีพื้นที่ว่างสำหรับหุ่นยนต์ (หรือโปรแกรม) ใหม่ๆ ที่จะสร้างและทำงานได้ นอกจากนี้ ยังช่วยลดความเสี่ยงที่โปรแกรมจะชนกันหรือทำงานผิดพลาดจากขยะที่เหลืออยู่
Garbage Collection ทำงานอัตโนมัติในภาษาโปรแกรมบางภาษา เช่น JavaScript, Java หรือ Python มันจะเริ่มทำงานเมื่อมันตรวจสอบและพบว่ามีขยะ (หรือหน่วยความจำที่ไม่ได้ใช้งานแล้ว) มากพอที่ควรจะเก็บ แต่เวลาที่มันทำงานอาจแตกต่างกันไปในแต่ละภาษาและแต่ละสภาพแวดล้อมการทำงาน
ลองจินตนาการถึงโค้ดภาษา Java ที่เราสร้างวัตถุชื่อ `Robot` ขึ้นมาเพื่อทำหน้าที่ต่างๆ และเมื่อเราไม่ต้องการใช้ `Robot` นั้นแล้ว เราจะไม่ต้องทำอะไรเพิ่มเติม ระบบ Garbage Collection จะตรวจสอบและทำลายวัตถุที่ไม่จำเป็นออกจากหน่วยความจำโดยอัตโนมัติ ตัวอย่างโค้ดด้านล่างนี้:
public class Robot {
// สร้าง properties และ methods ต่างๆ ของ Robot ไว้ที่นี่
}
public class RobotFactory {
public static void main(String[] args) {
// สร้างหุ่นยนต์
Robot myRobot = new Robot();
// เมื่อเราทำงานกับ myRobot แล้ว
// ...
// สุดท้ายเราไม่ต้องการใช้ myRobot มากขึ้นไปอีก จึงทำการ "เลิกใช้"
myRobot = null; // ตรงนี้ Garbage Collection จะทำงาน
}
}
ในโค้ดข้างต้น เมื่อเราประกาศ `myRobot = null;` นั่นคือเราบอกให้ Garbage Collection รู้ว่า `Robot` ตัวนั้นไม่ถูกใช้งานแล้ว และพร้อมที่จะถูกเก็บเป็นขยะได้
Garbage Collection เป็นเหมือนระบบการจัดการขยะในโลกของการเขียนโปรแกรม ที่ทำให้การทำงานของโปรแกรมเป็นไปอย่างราบรื่นและไม่หยุดชะงักจาก "ขยะ" ที่ไม่จำเป็น
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM