Work / SysMon

2016-03-13 14:31:58


SysMon is a system monitoring utility that resides in the notification area. It displays small scrolling graphs of Performance Counters and can be extensively configured via a settings file. It can display any wmi counter that has a numerical output.

It was written in C++ using raw Win32 (no MFC/ATL etc) so has a very small memory footprint and consumes very little cpu. There are currently two types of graph renderer available; line and bar. A default settings file is included in the download; the contents of which is described here


I made this because I didn't want the overhead of running Task Manager or (the fantastic) Process Explorer just to get tray icons - I only want a quick visual overview. A notification icon is perfect for this as it's always visible but I don't want unnecessary resource usage, so rendering tray icons is quite literally the only thing this application does - this is to keep its footprint as small as possible; and is a homage to the Separation of Concerns Design Principle.


A preview window has been added to replace the limited tool tip - this is a window that will popup when you hover your mouse over the tray icon:

Clicking the tray icon will make the window persist on (aka pin it to) your desktop - you can hide/close/unpin it by clicking the pin button in the top left corner. When a window is pinned to the desktop, it can be moved around by dragging it with the left mouse button. If the window gets covered by another window, it can be brought back to the front by clicking its corresponding tray icon.

Preview windows provide a larger visible history compared to the tray icon - the average and peak values presented are computed from the preview window graph history - the details of which can be inspected by hovering your mouse over the graph:

Preview windows are only updated/rendered when they are visible, so they do not add unnecessary overhead. On a Q9550 cpu, the default configuration consumes roughly ~0.05% cpu with no preview windows visible and ~0.33% cpu with all preview windows visible.

The default configuration present in the download provides the following graphs:

Click the link in the green box below to download SysMon. The download is a small zip containing two files, the SysMon executable and a default settings file. Extract them both to a directory of your choosing and run the executable.

Note: To run SysMon you must have installed the MSVC2013 Redistributable first.

Size: 188.85 KB, Date: 2017-04-05 01:50, MD5: 9c41a8cea091dac76e357e9555fd7e80

I really love icons and pixel art, so making this was fun :) The graphs are rendered using my own highly optimised anti-aliased alpha-blended line rendering algorithm, of which I am rather proud :). In the future may embed my VM and hook it into the data collection and presentation modules, which could be interesting!

Let me know if you like this by leaving a comment below!