Jak skutecznie usunąć obiekt StringBuilder
? Jeśli użytkownik generuje wiele raportów podczas jednego posiedzenia, moja aplikacja kończy się przy użyciu ogromnej ilości pamięci.Usuwanie obiektu StringBuilder
Czytałem w kilku miejscach w Internecie, że kontynuacja może pomóc:
StringBuilder sb = new StringBuilder(1000000);
// loop goes here adding lots of stuff to sb
exampleObject.Text = sb.ToString();
sb.Length = 0;
Czy ostatnia linia naprawdę pomóc? Jakikolwiek inny sposób radzenia sobie z tym?
NB: To naprawdę nie powstrzymuje moich użytkowników od dalszego korzystania z aplikacji. Zastanawiam się tylko, czy istnieje sposób na uniknięcie zbędnego użycia pamięci.
wyjęcie 1000000 może pomóc – David
Jak? Wstępna alokacja pamięci bardzo pomogła. Pozwalanie ciągłej zmianie rozmiaru StringBuildera spowalniało nieco. – Druid