Программная инженерия Нижний Новгород 017 Лабораторный


  Повторное использование памяти (сборка мусора)


Download 1.23 Mb.
Pdf ko'rish
bet62/87
Sana08.06.2023
Hajmi1.23 Mb.
#1463900
TuriУчебно-методическое пособие
1   ...   58   59   60   61   62   63   64   65   ...   87
Bog'liq
Pract ADS

2.2.7. 
Повторное использование памяти (сборка мусора) 
При удалении разделов текста для освобождения звеньев следует учитывать следующие 
моменты: 
обход всех звеньев удаляемого текста может потребовать длительного времени; 
при допущении множественности ссылок на разделы текста (для устранения 
дублирования одинаковых частей) удаляемый текст нельзя исключить, так как он может быть 
задействован в других фрагментах текста. 
Для решения этих проблем можно не освобождать память в момент удаления, а 
фиксировать удаление текста установкой соответствующего указателя в состояние NULL. 
При такой реализации операции удаления может возникнуть ситуация, когда в памяти, 
отведенной под хранение текста, будут присутствовать звенья, на которые нет указателей в 
тексте. Таким образом, эти звенья не могут быть возвращены системе для последующего 
использования, а память считается занятой (возникает так называемая утечка памяти). Такие 
звенья называются «мусором»
Наличие «мусора» в системе может быть допустимым, если имеющейся свободной памяти 
достаточно для работы программ. В случае нехватки памяти необходимо выполнить «сборку 
мусора» (garbage collection)
Для осуществления данного подхода необходимо программно реализовать систему 
управления памятью для представления текстов. Для данной системы управления память 
должна выделяться полностью при начале работы программы, размер выделяемой памяти 
может определяться как параметр системы. Для фиксации состояния памяти в классе 
TTextLink может быть определена статическая переменная MemHeader класс TTextMem


 
73 
class TTextMem { 
PTTextLink pFirst; // первое звено 
PTTextLink pLast; // последнее звено
PTTextLink pFree; // первое свободное звено
}; 
Для начального выделения и форматирования памяти используется статический метод 

Download 1.23 Mb.

Do'stlaringiz bilan baham:
1   ...   58   59   60   61   62   63   64   65   ...   87




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling