„Szerkesztő:Mr Steve/Garbage Collection” változatai közötti eltérés

Tartalom törölve Tartalom hozzáadva
Mr Steve (vitalap | szerkesztései)
Mr Steve (vitalap | szerkesztései)
71. sor:
 
== Implementációs stratégiák ==
A háromszínű algoritmus megvalósításának több alternatívája lehet, amelyek más-más módon befolyásolhatják a hatékony működést.
 
=== Mozgatás és Helybenhagyás ===
Miután meghatározta mely objektumokat kell felszabadítania az algoritmus minden más elemet úgy ahogy ahogy volt, vagy néhány (esetleg az összes) elemet új memóriaterületre másol, helyreállítva a hivatkozásokat.
 
Első ránézésre a mozgató stratégia drága és nem túl hatékony, de vannak jótékony hatásai a szemétgyűjtésre és a program futására egyaránt:
 
* Nincs szükség további műveletekre, hogy újra felhasználhatóvá tegyük a felszabadított memóriát. Ezzel szemben a mozgató módszernek valamilyen módon meg kell jelölnie az ismét felhasználható területeket.
* Az új objektumok létrehozása gyorsabb lesz, mivel az elemek egy összefüggő szabad memóriaterületen foglalnak helyet, az új elem helyét egyszerűen az aktuális memóriára mutató pointer növelésével meghatározhatjuk. A másik módszernek először töredezettségmentesítenie kell a területet, megfelelő méretű üres memóriahelyet létrehozva.
* Az egymásra gyakran hivatkozó objektumok közel lehetnek egymáshoz a memóriában, ez pedig megnöveli a valószínűségét, hogy ugyanazon a memórialapon helyezkedjenek el, nagymértékben gyorsítva az alkalmazáson.
 
A mozgató stratégia hátránya, hogy az objektumokhoz csak a szemétgyűjtő által létrehozott hivatkozásokon férünk hozzá és nem alkalmazhatóak a pointerműveletek, mert ha az objektumok más helyre kerülnek a rá hivatkozó mutató a semmire mutat.
 
==Források==