java 最適化

http://www.shudo.net/article/JavaWorld-200009-optimization/

Systemクラスのarraycopy()メソッド

どちらの方法が速いかは主に配列の長さに依って決まる。現在のところ、非常に大きな配列のコピーはarraycopy()の方が速いが、短い配列ではarraycopy()を使わずにJavaで書いた方が速い。どのくらいの長さで逆転が起こるかは、JVMJIT、AOTコンパイラなどに依存して決まるので、一概には言えない。

1.5でこんなもの
要素数 16 (10000000回)
arraycopy:734 ms
arraycopy2:532 ms
要素数 160 (10000000回)
arraycopy:1765
arraycopy2:4000

あとは、本当に性能を向上させたいなら、きちんと計測、プロファイリングを行うことである。
Javaはまだ実行系の研究開発が盛んに行われている最中なので、状況は刻々と変化し続けている。過去の知識や結果に固執せずに柔軟に対応、判断することを心がけたい。