Performance Hare

About

Performance Hare is a tiny system monitor for modern Windows.
It is the other extreme from administrative tools or from fancy desktop gadgets: a single notification (system tray) icon.
It's designed to give you an at-a-glance idea of what your computer is currently doing that may be slowing it down, without being the answer to that question itself.

Version 1.0.0.2 disables error reporting about icon timeouts, which are just noise when Explorer is busy.
It has also been recompiled with aggressive size optimisation, so the static build is now 90% smaller.

Source code r1825, should you wish to build it yourself or make modifications.
Contains a project for Visual Studio 2005.
Doesn't build with Dev-CPP/MinGW as they don't provide the headers for the performance API.
If you fix or improve things, send me a patch!

Documentation

There are two controls.
Left-clicking the icon will (try to) launch the Windows Performance Management Console, which you can use to see actual values.
Right-clicking will bring up a menu you can use to see the version, and to exit.
Otherwise, it's entirely passive: looking at the icon is the interface.

Everything is quiet.

Your CPU load is over 80%. Note that on a multiprocessor machine this only counts one core—reasonable if it's a single-threaded application being slow, which is still likely to be the case for now, less so otherwise.

The system is paging memory aggressively (hard page faults). This means that it's having to swap out to disk, or the file cache can't do its job because there's not enough free memory. Due to the way Windows records performance information, this may show up for some heavy disk reads.

Your disk drives are over 80% loaded, or the disk queue has grown long, which means that requests for disk activity are building up faster than the drives can cope with them.

Known issues

The Windows performance API uses localised strings as identifiers, so it's unlikely that Performance Hare will be able to find anything to monitor under non-English environments.

Due to the way the Windows performance information is secured, you need to be in the Performance Logs User Group, or an administrator. MSDN has the full details. Windows 2000 Power User accounts seem to work fine.

Selecting the icon with the keyboard will act as a left-click, even though I'm trapping the keyboard-activation event to launch the menu. Thankfully this is a pretty rare interaction case (I didn't even realise it was possible until reading the MSDN docs for it).

Although the thresholds have been chosen based on documentation, experimentation, and experience, they can only be changed by recompiling, because I've yet to write any configuration mechanism. (Microsoft seem to have deprecated their INI handling API in favour of the registry, which is not really suitable for a standalone, zero-[un]install program. Sigh.)

There's no network-limited performance indicator, because that's pretty much impossible. Windows' monitoring system doesn't seem to have much idea of network capacity, and whether a saturated network connection is the reason for whatever you're doing being slow is highly application-specific.

I haven't done the Vista security dance to let the icon reappear after Explorer crashes if running as Administrator, because I don't have a Vista (or 7) development machine. When Explorer isn't crashing, however, Vista compatability should be OK. It works under Windows 7 RC. Windows 7 should reshow the icon anyway.

Details

Performance Hare is only intended to let you see at-a-glance roughly what kind of load is happening on your computer.
For detailed information, you're better off with more extensive tools:

Windows 2K/XP ships with a Performance tool as part of the Management Console which can draw graphs from the same data. You may need to change your Start Menu preferences to show the Administrative Tools folder in which it resides, or you can left-click the Performance Hare icon to launch it.

Windows 7 ships with a very capable Resource Monitor which can break down which processes are causing CPU, memory, disk, and network load, and also useful information such as which files on disk are being accessed. Search for it in the Start Menu.

Microsoft also now host Sysinternals' Process Monitor, which is capable of digging out a lot of detail about individual program resource usage.