GroovyのようなJVM上に乗っている言語のベンチマークは難しく、安易に行うと誤った結果を出すことになります。例えばStringBuilderとStringBufferの比較するため次のようなプログラムを書いたとします。StringBufferは同期の為にStringBuilderよりも遅いことがよく知られています: def n = 100 * 1000 def at, bt bt = System.nanoTime() n.times { def sb = new StringBuilder() sb.append('foo') sb.append('bar') sb.append('baz') } at = System.nanoTime() println((at - bt) / n) bt = System.nanoTime() n.times { def sb = new St
![正しいGroovyベンチマーク](https://cdn-ak-scissors.b.st-hatena.com/image/square/db4db7e8930eb73cb201e5a3c01799a43e2649d0/height=288;version=1;width=512/http%3A%2F%2F2.bp.blogspot.com%2F-rP0YmPtzZ8g%2FT2iyfkIZknI%2FAAAAAAAAAEo%2F5_SsnjZOdEw%2Fw1200-h630-p-k-no-nu%2Fbenchmark_stringbuilder_stringbuilder.png)