Scalaでaobench

windows-x64 1.7.0 で前回と同じ https://gist.github.com/1029695 を実行。

$ cat /proc/cpuinfo
model name      : Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
$ echo $JAVA_HOME
C:\Program Files\Java\jdk1.7.0\

$ scala -J-server jp.peppermint.vec.immutable.App
List(1780, 1750, 1758, 1748, 1761)
1756.3333333333333

$ scala -J-server jp.peppermint.vec.mutable.App
List(1717, 1687, 1681, 1685, 1684)
1685.3333333333333
$ echo $JAVA_HOME
C:\Program Files (x86)\Java\jdk1.7.0\

$ scala -J-server jp.peppermint.vec.immutable.App
List(2150, 2145, 2146, 2153, 2138)
2147.0

$ scala -J-server jp.peppermint.vec.mutable.App
List(2111, 2097, 2090, 2091, 2087)
2092.6666666666665

前回のベンチマークではP8700 @ 2.53GHzでjdk1.6.0_18で実行した結果ではimmutableのほうが格段に遅かったけれど、6u26と1.7.0のどちらもimmutable版だからといって半分の速度になったりはしない。
5%〜15%程度の違いなら一時オブジェクト使ってimmutableに書くほうが楽そう。