次は最適化有の場合である。
result: 489261678 Flat profile of 6.22 secs (372 total ticks): main Interpreted + native Method 0.3% 1 + 0 java.lang.String.toLowerCase 0.3% 1 + 0 Total interpreted Compiled + native Method 39.0% 145 + 0 Test.expand02 28.0% 104 + 0 Test.expand03 22.3% 83 + 0 Test.expand04 6.7% 25 + 0 Test.expand05 2.4% 9 + 0 Test.expand06 0.3% 1 + 0 Test.expand07 98.7% 367 + 0 Total compiled Thread-local ticks: 1.1% 4 Compilation
約6秒という結果となった。
2004.04.22の結果は約8秒だったから、約2秒の改善ということになる。
再帰無しで動的メモリ確保の場合(2004.05.17)の約7秒と比較すると、約1秒程速くなっていることが分かる。
今回の場合も、expand01がリストから消えているのが特徴だろうか。
最適化の際、インライン展開されてしまった可能性も十分にありそうだ。