Getting a keyboard with clear Cherry switches recently[1], I needed a
method to objectively compare it to my current blue cherry one to
decide on which one is more appropriate for me. The only objective
comparison I could imagine was typing speed and accuracy.
A long time ago I made a small shell script that monitored the
keyboard interrupt in /proc/interrups. This wasn't very useful
though: Although you could compensate for the duplicate interrups
(press + release) by dividing by two, leaning on a key - even the
control or shift keys - would cause lots of interrups due to auto
repeating. Another drawback was that USB keyboards won't generate any
interrupts at all because they are polled for data instead.
In my latest iteration, I'm using Linux 2.6's /dev/input facility
instead. This allows for easy filtering of auto-repeat events and
works with USB keyboards as well as the one hooked up to the PS/2
port. The attached keyboard.c[2] slurps events from stdin and outputs
a timestamp and a keycount every minute. You can use it like this to
generate a logfile:
# ./keycount < /dev/input/event1 > logfile &
[2] 16184
# tail -f logfile
1245412458 150
1245412518 236
...
Using GNU R[3] to plot the data, it looks like this:

Now only time can tell which keyboard is the winner...
Footnotes:
[1] geekhack.org IS bad for wallets
[2] Typing "make keyboard" in the same directory as keyboard.c should
yield a proper executable file on GNU/Linux
[3] a free software implementation of S, code for plotting attached as keycount.R