2010-11-16 1 views
0

У меня есть сторонний компонент, который использует функцию TraceSwitch, чтобы я мог выводить некоторые следы того, что происходит внутри. К сожалению, запуск переключателей в подробном режиме с использованием TextWriterTraceListener в качестве потребителя (выходы в файл) слишком сильно замедляет приложение.TextWriterTraceListener в фоновом потоке

Не имеет значения, что прослеживаемые данные записываются немедленно, так же как можно получить данные, записанные в потоке с более низким приоритетом? Возможно, задача?

EDIT

После дальнейшего исследования, он кажется простым поворотом на коммутаторах, не подключая слушателя вызывает замедление. Я собираюсь завладеть поставщиком компонентов.

Было бы интересно услышать ответ, хотя.

ответ

1

Напишите собственное расширение для TraceListener. В расширении поместите все строки трассировки в строку List <> и когда счетчик будет достаточно высоким, напишите список в файл и очистите список, чтобы начать заново. Сбросьте список на Dispose().

Это может быть легко расширено, чтобы использовать пул потоков в очередь для новой задачи.

Это не гарантирует, что вы улучшите производительность. Это поможет, только если вы уверены, что IO замедляет работу.

 Смежные вопросы

  • Нет связанных вопросов^_^