Reference Counting
Garbage Collection
Автоматично събиране на динамично заделена памет.
Някои основни понятия
Основни алгоритми за garbage collection
Reference Counting (Collins, 1960)
“A method for overlapping and erasure of lists”, George E. Collins, 1960
Копиращ алгоритъм (C.J. Cheney, 1970)
Копиращ алгоритъм (C.J. Cheney, 1970)
Копиращ алгоритъм (C.J. Cheney, 1970)
Mark and Sweep (Steele 1975 and Dijkstra 1978)
Mark and Sweep (Steele 1975 and Dijkstra 1978)
Предимства при използването на Reference Counting
Предимства при използването на Reference Counting
Недостатъци на Reference Counting
Циклични връзки
Циклични връзки
Циклични връзки
Външни и вътрешни за цикъла връзки
“Reference counting can manage the circular environments of mutual recursion”, Friedman and Wise, 1978
Външни и вътрешни за цикъла връзки
“Reference counting can manage the circular environments of mutual recursion”, Friedman and Wise, 1978
Външни и вътрешни за цикъла връзки
“Reference counting can manage the circular environments of mutual recursion”, Friedman and Wise, 1978
Външни и вътрешни за цикъла връзки
“Managing Reentrant Structures Using Reference Counts” Daniel G. Bobrow, 1980
Външни и вътрешни за цикъла връзки
“Managing Reentrant Structures Using Reference Counts” Daniel G. Bobrow, 1980
Външни и вътрешни за цикъла връзки
“Managing Reentrant Structures Using Reference Counts” Daniel G. Bobrow, 1980
Външни и вътрешни за цикъла връзки
“Managing Reentrant Structures Using Reference Counts” Daniel G. Bobrow, 1980
Алгоритми с използване на слаби връзки (weak pointers)
Инварианти за коректност:
Алгоритми с използване на слаби връзки (weak pointers)
Алгоритми с използване на слаби връзки (weak pointers)
Алгоритми с използване на слаби връзки (weak pointers)
Алгоритми с използване на слаби връзки (weak pointers)
Частичен Mark & Sweep
Частичен Mark & Sweep
Още ресурси ако темата ви е интересна
Q&A