Компьютерийн шинжлэх ухаанд Хаягдал цуглуулах' буюу Garbage collection гэдэг нь нэг төрлийн автомажсан санах ойн зохицуулалт юм. Хаягдал цуглуулагч буюу цуглуулагч нь ч програмуудад хэрэглэгдэж дууссан объектүүдийн ашиглаж байсан санах ойг цуглуулж авах зорилготой. Lisp дэх асуудлыг шийдвэрлэхийн тулд хаягдал цуглуулагчийг 1959 онд Жонн МакКати зохион бүтээсэн. Хаягдал цуглуулагчийг ихэвчлэн гар ажиллагаатай санах ойн зохицуулагчийн эсрэг багаж хэмээн үздэг. Гар ажиллагаатай санах ойн зохицуулагч нь программист аль объектүүд чөлөөлөгдөж санах ойн системд буцаж очихыг нь зааж өгөх ёстой байдаг. Гэхдээ олон системүүд энэхүү хоёр арга болон багц хуваарилалт, райончилсан гаргалгаа зэрэг бусад аргуудыг хавсарган ашигладаг. JVM нь мөн хаягдал цуглуулагч – дахин хэрэглэгдэхгүй байгаа зүйлийн санах ойг нь сэргээж, системд эргүүлэн оруулах үйлдэлийг ашиглаж автоматаар санах ойг зохицуулдаг. Бодит машин дээрх Java программуудын үйл ажиллагааг сайжруулахын тулд хаягдал цуглуулалтын алгоритмуудыг судласаар байна.

Үүрэг зарчим

засварлах
  • Ирээдүйд хандалт байхгүй болж өгөгдлийн обьектын програмыг хайна
  • Тэдгээр обьектуудыг сэргээж эх кодыг ашиглах
  • Обьектуудыг тодорхойлох
  • Обьектуудыг хуулж,цуглуулагчыг зөөх
  • Уншиж, бичихийг хорьж цуглуулагчыг нэмэгдүүлэх
  • Бүртгэлээ чөлөөтэй ашиглаж,цуглуулагч шилжихгүй байх

Жава виртуал машин нь автоматаар санах ойг удирдаж garbage collection-г биелүүлэх ба үүнийг анх 1959 онд John McCarthy зохиосон. Энэ нь санах ойг сэргээж системийг буцаах болон обьектыг түр хугацаагаар ашиглана. Garbage collection-ий алгоритмуудын гол хэсгийг олон дахин хайхад виртуал машин дахь жава програмын хүчин чадал нэмэгдэнэ. Тэгэхдээ компьютерийн ухаанд garbage collection-г шууд санах ойн үйл явцтай холбон үзэж болох бөгөөд программистууд нь обьектуудыг чөлөөлөн хариу өгч, санах ойн системийг буцаана. Garbage collection-д санах ойн эх кодууд,сүлжээний үүр, өгөгдлийн сангийн тохиргоо, хэрэглэгч болон цонхны харилцан үйлчлэл,файл болон төхөөрөмжийг тодорхойлогчууд багтана. Зарим garbage collection нь санах ойн хязгаарын эх кодыг нэгтгэхийг зөвшөөрдөг ба түүнийг цуглуулж, бусад эх кодыг сэргээж болдог.