Udostępnij za pośrednictwem


Użyj klasy StringBuilder do konkatenacji

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.

Zobacz też