While listening on a thread between Charles Nutter and David Rose, this link popped up. It is a list of things you need to consider when constructing a microbenchmark.
At the moment I am throughly convinced that the only useful thing that can come from a microbenchmark is learning about how the JVM really works. Much of how the benchmark works is per-ordained by maths which means you are rarely measuring what you believe you are measuring.