I have noticed that DebugMonitorViewer really hogs the CPU when messages are output in quick succession. This is quite a common occurrence in my application and it is severely affecting performance. On these occasions Task Manager shows that the DebugMonitorViewer process uses 99% of the CPU leaving nothing left for the parent application. It seems that inserting the log rows into the viewer's internal database is just too slow. Even after I exit my application I can see log rows still being added to the viewer as it catches up with the requests.
I believe that there are two issues here. One is the basic speed of adding a row. There seems to be a lot of small memory allocations as rows are added. It would help if larger blocks of memory were allocated less frequently; perhaps that could be an option if you're concerned about reserving too much memory. The second issue is the priority of the viewer process. I think it should be as low as possible by default.
Speed aside, the usefulness of the viewer constantly surprises me and I sometimes wonder how I managed without it.