Garbage collection: Porovnání verzí
Smazaný obsah Přidaný obsah
→Algoritmus počítání referencí: preformulace značka: editace z Vizuálního editoru |
m →Sledovací (tracing) algoritmy: (vraceno:) defragmentace u mark ans sweep |
||
Řádek 34:
Tato metoda má několik nevýhod. Největší je, že při garbage collectionu je přerušen běh programu. To znamená, že se programy pravidelně ''zmrazí'', takže je nemožné pracovat s aplikacemi používající reálný čas.
Jednoduchá implementace Mark&Sweep, která nechává živé objekty na místě, trpí fragmentací uvolněné paměti. Proto je součástí této implementace GC obvykle [[defragmentace|defragmentování]] paměti.
=== Kopírovací (copying) collector ===
Řádek 40 ⟶ 42:
Nevýhodou tohoto algoritmu je jeho velká paměťová náročnost (potřebuje dvojnásobný prostor pro objekty). Další nevýhodou je potřeba kopírovat objekty, které přežijí úklid. Oproti tomu algoritmus nemá vůbec žádnou práci s objekty, které úklid nepřežijí. Vhodný je tedy v případě, že velká část objektů má být smazána, což se u nově vzniklých objektů často stává. Při běhu algoritmu je při kopírování objektů do druhé části haldy paměť automaticky defragmentována.
V praxi bývá tento algoritmus používán pro nově vzniklé objekty a je kombinován s dalšími algoritmy, což eliminuje jeho nevýhody.
== Generační algoritmus ==
|