なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net (914レス)
なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1448704298/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
378: デフォルトの名無しさん [sage] 2015/12/27(日) 12:07:38.28 ID:BwztOoZh >>375 横ですが、再帰呼出だとcallのオーバーがある分遅くなるで良いのかな? まあ数パーセント程度だと思うけど http://mevius.5ch.net/test/read.cgi/tech/1448704298/378
382: デフォルトの名無しさん [sage] 2015/12/27(日) 12:35:34.85 ID:Zmrinoji >>378 Pen4のデータシートの値を元にするなら ループのコストと再帰のコストは約2.5〜3clockくらいの差になると思う。 今時のCPUならもっと差は縮まるだろうし、実際に測った訳じゃないけど だいたいそのくらいになる筈。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/382
387: デフォルトの名無しさん [sage] 2015/12/27(日) 13:08:45.42 ID:yWds0j/q >>378 tail callを繰り返しに変換できるようなケースだと 関数呼び出しはコスト高かも知れないが、 ループ版では明示的スタック操作をしなければならない場合、 call,ret相当のことをjpと組み合わせて明示的にやらないといけない。 通常、関数呼び出し後のスタックフレームの確保はcalleeが明示的にやるからループ版と変わらないが、 スタックフレームの開放はretが自動的にやる。 だからコスト的には大差なく、 関数呼び出しの方が有利なケースだってあるはず。 繰り返しの明示的なスタック操作が圧倒的有利にあるのは、 FILOじゃなくてFIFOにしたり戦略が建てられること。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/387
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.036s