Қоқыс жинау мен қоқыс жинаудың айырмашылығы неде?
жауап 1:
Сұраққа жауап береді: Mark Compact алгоритмі - Wikipedia
Қоқыс жинау: Қол жетпейтін жад блоктарын (қоқысты) бос деп белгілеңіз.
Қысу: Есте сақтаудың қол жетімді блоктарын бір-біріне жақын етіп жылжытыңыз, сонда олардың арасында бос жад блоктары болмайды. Ол әдетте қоқыс жинаумен бірге жүзеге асырылады, бірақ қажет емес.
Неліктен қоқысты жинау өте маңызды: бағдарламалаушыға қоқысты басқаруды аяқтауға мүмкіндік береді. Қоқыс жинаушы әр қоқыс жадын С бағдарламашыларындағыдай белсенді түрде босатпай босатады. Бұл бағдарламашыны когнитивті стресстен босатады және дұрыс кодты жазуды жеңілдетеді (C ++ -де басқа модель бар).
Неліктен қысу маңызды: сығымдау әдетте қоқыс жинауымен бірге жасалады. Бөліну қысылу арқылы жойылады (Wikipedia). Фрагментация, қоқыс сақтау сияқты, сақтауды азайтады.
Мысалы, келесі сақтау орнын қарастырыңыз:
Мұнда жалпы көлемі 900 МБ болатын 2 тегін фрагменттер бар. Алайда, 1 ГБ жадты бөлу сәтсіз аяқталды, себебі қатарынан 900 МБ блок жоқ. Сығымдау 2-нысанды солға жылжытады. Бұл: