今度は、再帰呼び出しを単純に関数に展開した場合を実測してみよう。
動的メモリ確保、malloc/free
20:04:10 result: 489261678 20:04:14 result: 489261678 20:04:19
最適化無:約4秒、最適化有:約5秒
動的メモリ確保、alloca
20:04:19 result: 489261678 20:04:22 result: 489261678 20:04:25
最適化無:約3秒、最適化有:約3秒
事前メモリ確保、malloc/free
20:04:25 result: 489261678 20:04:28 result: 489261678 20:04:30
最適化無:約3秒、最適化有:約2秒
事前メモリ確保、alloca
20:04:30 result: 489261678 20:04:33 20:04:38
最適化無:約3秒、最適化有:error
以上のような結果となった。
傾向としては、再帰有りの場合と同じようだ。
また、再帰有りの場合よりも若干、実行速度は向上しているようだ。