Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano szczegółowe informacje o wydajności podczas modyfikowania niezmiennych kolekcji, takich jak ImmutableList<T>.
Przyczyna
Modyfikowanie niezmiennej kolekcji (takiej jak Add, Removelub Insert) powoduje niską wydajność.
Opis szczegółowych informacji o wydajności
Każda modyfikacja kolekcji niezmiennej tworzy nową kopię kolekcji, co powoduje nadmierne alokacje pamięci i użycie procesora CPU. Jest to szczególnie nieefektywne, gdy modyfikacje są wykonywane często, w pętlach lub w ścieżkach kodu o znaczeniu krytycznym dla wydajności.
Jeśli to możliwe, użyj kolekcji modyfikowalnej (takiej jak List<T>) podczas budowy lub w ścieżce gorącej i przekonwertuj na niezmienialny zbiór tylko wtedy, gdy jest to konieczne. Kolekcje modyfikowalne umożliwiają wydajne modyfikacje w miejscu, podczas gdy kolekcje niezmienne są najlepiej używane w przypadku bezpieczeństwa wątków i scenariuszy, w których modyfikacje są rzadko używane.
Jak zbadać ostrzeżenie
W narzędziu Użycie procesora CPU kliknij pozycję Wyświetl kod źródłowy , aby znaleźć, gdzie są modyfikowane kolekcje niezmienne. Jeśli to możliwe, refaktoryzacja użycia kolekcji modyfikowalnej w kodzie uwzględniającym wydajność i konwertowanie na niezmienialny zbiór tylko wtedy, gdy jest to konieczne.