Есть ли более эффективный средство обработки текста, чем TextWriter / StringBuilder

StackOverflow https://stackoverflow.com/questions/81067

Вопрос

Для такой ситуации, как постепенный захват текста, например, если вы получали все вызовы output.write при рендеринге страницы, и они добавлялись в textwriter через stringbuilder.

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

Это было полезно?

Решение

Я думаю, что StringBuilder - это наиболее эффективный способ добавления текста в .net.Чтобы быть более эффективным, вы можете указать начальный размер StringBuilder при его создании.

Другие советы

Это зависит от того, что вы делаете с этим текстом.

Если проблема связана с отслеживанием или протоколированием, я бы сказал, что лучше всего использовать ETW (Event Tracing for Windows).Это средство трассировки на уровне ядра, встроенное в Windows начиная с Windows 2000, и это намного, намного быстрее, чем выполнение файлового ввода-вывода.

Если вы не используете .NET 2.0, вам придется немного поработать с win32 API, чтобы использовать его, и вам нужно создать класс provider, который вы регистрируете в системе.Это немного сложно, но стоит затраченных усилий.

Если вы используете .NET 3.5, управляемые классы Etw можно найти в System.Диагностика.Отслеживание событий.

Это самое лучшее, что может быть.Вы можете использовать StringWriter, но он все равно записывается в StringBuilder

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top