Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In achtergrond garbagecollection (GC) worden ephemere generaties (0 en 1) indien nodig verzameld, terwijl de verzameling van generatie 2 aan de gang is. Garbagecollection op de achtergrond wordt uitgevoerd op een of meer toegewezen threads, afhankelijk van of het werkstation of server-GC is en alleen van toepassing is op verzamelingen van de tweede generatie.
Garbagecollection op de achtergrond is standaard ingeschakeld. Deze kan worden ingeschakeld of uitgeschakeld met de configuratie-instelling gcConcurrent in .NET Framework-apps of de instelling System.GC.Concurrent in .NET Core en .NET 5 en hoger.
Opmerking
Garbagecollection op de achtergrond vervangt gelijktijdige garbagecollection en is beschikbaar in .NET Framework 4 en latere versies. In .NET Framework 4 wordt dit alleen ondersteund voor workstation garbage collection. Vanaf .NET Framework 4.5 is achtergrond-garbagecollection beschikbaar voor zowel werkstation als server garbagecollection.
Een inzameling van kortstondige generaties tijdens de achtergrond garbage-collection wordt ook wel voorgrond garbage-collection genoemd. Wanneer er voorgrond garbageverzamelingen optreden, worden alle beheerde threads onderbroken.
Wanneer de achtergrondgeheugenopruiming wordt uitgevoerd en u voldoende objecten in generatie 0 hebt toegewezen, voert de CLR een geheugenopruiming uit voor generatie 0 of generatie 1 in de voorgrond. De toegewijde achtergrondgarbagecollectiethread controleert regelmatig op veilige punten om te bepalen of er een verzoek is voor voorgrondgarbagecollectie. Als dat het geval is, wordt de achtergrondverzameling onderbroken, zodat de voorgrond garbagecollection kan plaatsvinden. Nadat de voorgrondafvalverzameling is voltooid, worden de toegewezen achtergrondafvalverzamelingthreads en gebruikersthreads hervat.
Achtergrond vuilnisophaling verwijdert toewijzingsbeperkingen die worden opgelegd door gelijktijdige vuilnisophaling, omdat er kortstondige vuilnisophalingen kunnen plaatsvinden tijdens de achtergrond vuilnisophaling. De achtergrond garbagecollection kan dode objecten in kortlevende generaties verwijderen. Het kan ook de heap uitbreiden, indien nodig, tijdens een garbagecollectie van generatie 1.
Achtergrondwerkstation versus server GC
Vanaf .NET Framework 4.5 is background garbage collection beschikbaar voor de server-GC. Background GC is de standaardmodus voor server-garbage-collection.
De garbagecollection van de achtergrondserver werkt op dezelfde manier als de garbagecollection op het achtergrondwerkstation, maar er zijn enkele verschillen:
Achtergrondwerkstation garbagecollection maakt gebruik van één toegewezen achtergrond garbagecollection thread, terwijl de garbagecollection op de achtergrondserver meerdere threads gebruikt. Normaal gesproken is er een toegewezen thread voor elke logische processor.
In tegenstelling tot de achtergrondthread voor garbagecollection van het werkstation, hebben de achtergrondthreads van de server-GC geen time-out.
In de volgende afbeelding ziet u de achtergrondwerkstation garbagecollection die wordt uitgevoerd op een afzonderlijke, toegewezen thread:
In de volgende afbeelding ziet u de garbage-collection van de achtergrondserver, uitgevoerd op afzonderlijke, toegewezen threads:
Gelijktijdige garbage-collection
Aanbeveling
Deze sectie is van toepassing op:
- .NET Framework 3.5 en eerder voor garbagecollection van werkstations
- .NET Framework 4 en eerder voor garbagecollection van de server
Gelijktijdige garbagecollection wordt vervangen door de garbagecollection op de achtergrond in latere versies.
In werkstation- of server-vuilnisophaling kunt u gelijktijdige vuilnisophaling inschakelen, waardoor threads gelijktijdig worden uitgevoerd met een specifieke thread die de vuilnisophaling voor het grootste deel van de verzameling uitvoert. Deze optie is alleen van invloed op garbage collection in generatie 2; generaties 0 en 1 zijn altijd niet-concurrent omdat ze snel eindigen.
Met gelijktijdige vuilnisophaling kunnen interactieve toepassingen sneller reageren door onderbrekingen van het verzamelproces te minimaliseren. Beheerde threads kunnen meestal doorgaan terwijl de gelijktijdige garbage collection-thread actief is. Dit ontwerp resulteert in kortere pauzes terwijl er een garbagecollection plaatsvindt.
Gelijktijdige garbagecollection wordt uitgevoerd op een toegewezen thread. De CLR voert standaard garbage-collection voor werkstations uit met gelijktijdige garbage-collection ingeschakeld op computers met een enkele processor en computers met meerdere processoren.
In de volgende afbeelding ziet u de gelijktijdige garbagecollection die wordt uitgevoerd op een afzonderlijke toegewezen thread.