Для такой ситуации, как постепенный захват текста, например, если вы получали все вызовы output.write во время рендеринга страницы, и они добавлялись в текстовый редактор поверх построителя строк.
Есть ли более эффективный способ сделать это? Желательно то, что уже существует в дотнете? Особенно, если их общий размер превышает 100 тыс. Может быть, что-то больше похоже на массив страниц, а не на непрерывную память?





Я думаю, что StringBuilder - самый эффективный способ добавить текст в .net. Для большей эффективности вы можете указать начальный размер StringBuilder при его создании.
Это настолько хорошо, насколько это возможно. Вы можете использовать StringWriter, но он все еще записывает в StringBuilder
Это зависит от того, что вы делаете с этим текстом.
Если проблема связана с отслеживанием или ведением журнала, я бы сказал, что лучше всего использовать ETW (отслеживание событий для Windows). Это средство трассировки на уровне ядра, встроенное в Windows со времен Windows 2000, и оно намного, намного быстрее, чем выполнение файлового ввода-вывода.
Если вы не используете .NET 2.0, вам придется немного поработать с Win32 API, чтобы использовать его, и вам нужно создать класс провайдера, который вы регистрируете в системе. Это немного сложно, но стоит усилий.
Если вы используете .NET 3.5, управляемые классы Etw можно найти в System.Diagnostics.Eventing.