Every example of tracing in .NET people remove the \"Default
\" listener:
It's not clear from that blog post how the code was run, but the DefaultTraceListener is documented like this:
By default, the Write and WriteLine methods emit the message to the Win32 OutputDebugString function and to the Debugger.Log method. For information about the OutputDebugString function, see the Platform SDK or MSDN.
So if Debugger.Log
is actually printing to a UI window (and quite possibly scrolling it etc) I can see that causing a lot of the slowdown.