Well, I created a rather simple project to compare basic speeds of both loggers agains each other. Let me give you the result upfront:
Let's take a look why this first combat ended even. SmartInspect, imo has the more logical base settings applied to the viewer. In this case I prefer auto-scrolling for the log turned off. This generally speeds up both clients a lot when many messages are coming in. When auto-scrolling is on, the SmartInspect viewer performs much better than the CodeSight viewer. While SmartInspect updates the autoscroll every few milliseconds (let's say maybe 10 times per second), CodeSite updates the list with every message. With 4500 messages coming in about two seconds, CodeSite will take it's time to update the list, while SmartInspect does not really loose performance whether auto-scroll is turned on or not.
Okay, so on the view side, SmartInspect wins outright. Let's take a look at the application you are writing, the one which implements the logging classes. Here you have to know how both applications are working. For now, we are looking at the "live logging" on the same machine.
CodeSite uses Windows Messages when logging to send the data from your application to the logging application. SmartInspect uses its own TCP protocol. CodeSite needs a dispatcher application running, which the dispatches the data sent from your application to the log viewer, SmartInspect sends those data directly to the viewer. Just as note: both systems allow for file logging and other targets just as well.
Due to using Windows Messages the sending of the messages works asyncronous for CodeSite, therefore your application has almost no performance hits when logging. The application sends its message and goes on without caring whether the logging application has processed it, or not. SmartInspect performs a little less good on this side, your applications sends its data via TCP to the logger and waits until the data are processed. On the other hand, whatever happens in your application, SmartInspect shows it on-time in the logger, while CodeSite may take much longer, since it is processing all messages async.
However, when logging is disabled (default for SmartInspect), both system performances are equally good and almost unnoticable from within your application, therefore, once you inserted logging code into your application, leave it in your code, you may need it later.
Last a screen shot showing both loggers (SI left, CS right) and the test applications, which you may know from somewhere ;-) The modified threading samples are ready for download (13 Kb), however, you need the respective tools for using them. Click the image below for a full size version (700 Kb).
SmartInspect (left) and CodeSite (right)
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.
Theme design by Jelle Druyts