では、昨日のソースコードを実際に実行してみよう。
まずは最適化無の場合である。
result: 489261678 Flat profile of 65.98 secs (4222 total ticks): main Interpreted + native Method 40.6% 1713 + 0 Test.expand02 32.1% 1354 + 0 Test.expand03 17.2% 725 + 0 Test.expand04 5.7% 239 + 0 Test.expand05 2.1% 89 + 0 Test.expand01 1.6% 66 + 0 Test.expand06 0.4% 17 + 0 Test.expand07 0.0% 1 + 0 java.util.jar.Attributes.read 0.0% 1 + 0 Test.expand08 99.6% 4205 + 0 Total interpreted Thread-local ticks: 0.0% 1 Class loader 0.4% 16 Interpreter Global summary of 65.98 seconds: 100.0% 4222 Received ticks 0.0% 1 Class loader 0.4% 16 Interpreter
結果は約66秒となった。
以前(2004.04.21)に行った最適化有りの時の結果は約81秒、それに比べると約15秒の改善となっている。
2004.05.16の結果は約76秒だったから、それと比べても約10秒速い。
ただ、動的メモリ確保の時も再帰無しにすると約14秒の改善だったから、動的メモリ確保でも事前メモリ確保でも、再帰を展開すると約14〜15秒改善したと言えるかも知れない。
次は最適化有りの場合を見てみる。