Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano szczegółowe informacje o wydajności łączenia ciągów.
Przyczyna
Wywołania elementu System.String.Concat są znaczną częścią danych profilowania. Rozważ użycie StringBuilder klasy do konstruowania ciągów z wielu segmentów.
Opis szczegółowych informacji o wydajności
String Obiekt jest niezmienny. W związku z tym wszelkie modyfikacje ciągu tworzą nowy obiekt ciągu i odzyskiwanie pamięci oryginalnego. To zachowanie jest takie samo, czy jawnie wywołujesz metodę String.Concat, czy używasz operatorów łączenia ciągów, takich jak + lub +=. Wydajność programu może się zmniejszyć, jeśli te metody są często wywoływane, na przykład gdy znaki są dodawane do ciągu w ciasnej pętli.
Klasa StringBuilder jest obiektem modyfikowalnym i, w przeciwieństwie do parametru System.String, większość metod w programie StringBuilder, które modyfikują wystąpienie tej klasy, zwracają odwołanie do tego samego wystąpienia. Możesz wstawić znaki lub dołączyć tekst do wystąpienia StringBuilder oraz usunąć lub zamienić znaki w wystąpieniu bez konieczności przydzielania nowego wystąpienia i usuwania oryginalnego wystąpienia.
Jak zbadać ostrzeżenie
W narzędziu Użycie procesora CPU kliknij pozycję Wyświetl kod źródłowy, aby przejść do drzewa wywołań i widoku wyróżniania wiersza źródłowego pokazującego, gdzie najwięcej czasu poświęca się na łączenie ciągów. Jeśli problem występuje w wielu lokalizacjach w aplikacji, przejdź do widoku wywołującego/wywoływanego, aby wyświetlić każdą lokalizację wywołania.