¿Cómo escribo un micro benchmark correcto en Java?

¿Cómo se escribe (y ejecuta) un micro benchmark correcto en Java?

Estoy buscando ejemplos de código y comentarios que ilustran varias cosas en las que pensar.

Ejemplo: ¿Debe el punto de referencia medir tiempo / iteración o iteraciones / tiempo, y por qué?

Relacionado:Es aceptable la evaluación comparativa del cronómetro?

Respuestas a la pregunta(11)

Su respuesta a la pregunta