2010-08-16

http://anond.hatelabo.jp/20100816013003

ポイントは剰余と関数ポインタで分岐してるところか。

昔、関数ポインタ配列みたいな連続テーブルになって条件分岐を使うより実行動作が速くなることを期待してコードを書いて速度測ったけど

inlineで展開されるコードジャンプ前提なifやgotoよりも何百倍も遅くて悲しくなった記憶がある。

記事への反応 -
  • if も 3項演算子も for も do whileすらもない ifなしの Fizz Buzz だから、プログラム記法がなくても<>が無いから化けないぜ #include "stdio.h"#include "stdlib.h"int cnumber=0;void fizz(){ printf("fiz...

    • ポイントは剰余と関数ポインタで最適化してるところか。 昔、関数ポインタが配列みたいな連続テーブルになって条件分岐を使うより実行動作が速くなることを期待してコードを書いて...

      • そりゃまぁ、関数コールは、本当にCall命令がコールされれば レジスタのスタックへのPUSHが走るからなメモリコピー関数xレジスタ文はGotoよりも重いよ。(元増田です。)

        • inline宣言された関数ならマクロみたいにインライン展開される可能性はあるけどね。 でも今時のコンパイラは最適化有効ビルドをすればそんな修飾に関係なく自動でインライン展開かど...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん