Delen via


Inefficiënte onveranderbare verzamelingswijzigingen

In dit artikel worden prestatie-inzichten beschreven bij het wijzigen van onveranderbare verzamelingen, zoals ImmutableList<T>.

Oorzaak

Het wijzigen van een onveranderbare verzameling (zoals Add, Removeof Insert) resulteert in trage prestaties.

Beschrijving van prestatie-inzicht

Elke wijziging in een onveranderbare verzameling maakt een nieuwe kopie van de verzameling, wat resulteert in overmatige geheugentoewijzingen en CPU-gebruik. Dit is met name inefficiënt wanneer wijzigingen regelmatig, in lussen of in prestatiekritische codepaden worden uitgevoerd.

Gebruik indien mogelijk een onveranderbare verzameling (zoals List<T>) tijdens de bouw of in hete paden en converteer deze alleen naar een onveranderbare verzameling wanneer dat nodig is. Onveranderbare verzamelingen zorgen voor efficiënte in-place wijzigingen, terwijl onveranderbare verzamelingen het beste worden gebruikt voor threadveiligheid en scenario's waarbij wijzigingen niet vaak worden gewijzigd.

Een waarschuwing onderzoeken

Klik in het hulpprogramma CPU-gebruik op Broncode weergeven om te bepalen waar onveranderbare verzamelingen worden gewijzigd. Herstructureer indien mogelijk een onveranderbare verzameling in prestatiegevoelige code en converteer deze alleen naar een onveranderbare verzameling wanneer dat nodig is.

Zie ook

Documentatie voor onveranderbare verzamelingen