フィボナッチ数列の再帰処理が最適化でとても速い理由
とりあえず、アセンブルしてみました。
g++ -S -o ***.0s ***.cpp g++ -O2 -S -o ***.2s ***.cpp
で、ふたつのファイルのGASをのぞいてみると...
最適化ありの方がちょっと長くなっている…
というか、ループになっている。
ちゃんと吟味したわけではないので、絶対とは言えないけど、
Super Technique 講座〜再帰関数の技
原因はこれかなぁ。
末端再帰関数にあてはまるでしょ。
とりあえず、アセンブルしてみました。
g++ -S -o ***.0s ***.cpp g++ -O2 -S -o ***.2s ***.cpp
で、ふたつのファイルのGASをのぞいてみると...
最適化ありの方がちょっと長くなっている…
というか、ループになっている。
ちゃんと吟味したわけではないので、絶対とは言えないけど、
Super Technique 講座〜再帰関数の技
原因はこれかなぁ。
末端再帰関数にあてはまるでしょ。