I have programmed for enjoyment, and from time to time for pay, since about the age of seven.
Being neither especially adept in graphic design nor particularly skilled with the copious libraries required to build reasonable GUI applications, though finding some sorts of animation pleasing, and with my mathematical interests running mostly to finding attractively large examples of particular types of object, I want to write software which extracts all the performance possible from the available hardware. Yes, the available hardware becomes faster as time passes - but to double the speed of your processor is fairly expensive and can only be done once every couple of years; to increase the speed of your software is free and limited only by your ingenuity.
"Resources" is a nice vague title; it lets me put all sorts of assorted things into one index:
Half a page on the philosophy of out-of-order execution; this is useful to explain why my benchmarks might be measuring interesting things. If you find this sort of low-level attitude to computing interesting, may I recommend the comp.arch newsgroup, where the greatest gurus of the field hang out.
Code and results from Ptrchase (a memory-latency benchmark) and Branchmark (a branch-prediction benchmark). Note that to see the graphs of results requires a PNG-capable browser or separate viewing program.
prectime, a very simple wrapper for the cycle counters on a variety of hardware. Used by the above benchmarks.
My x86 FAQ, with various glossaries of terms prevalent in the subject and a substantial timeline showing the introduction of every x86 processor since the original Pentium in 1996.
A rant about the extent to which hardware development has left software behind: limitless capability, to be extracted with hopeless tools.
Tracking Moore's law: just how fast does your new costly computer become a toy fit only for giving to your nine-year-old?