So this is available for Java: http://java-performance.info/jmh/. The framework uses attributes such as @Benchmark, @BenchmarkMode(Mode.AverageTime), @OutputTimeUnit(TimeUnit.MICROSECONDS) etc. to great effect. Far as I can imagine, runtime reflection is used. We should do the same, just with compile-time reflection! Andrei