総合発表&雑談スレッド

このエントリーをはてなブックマークに追加
649名前は開発中のものです。
>>640
まず、最初の前提としてC言語であると仮定しておく(一言も触れてないので、とりあえずこう仮定)
今時のまっとうなコンパイラであるなら、 そのあたりきっちり最適化してくれるので、
君が心配しているほど速度は問題にならないと思われる。

ジャンプテーブルうんぬんというのは、 たとえば、分岐が{0,1,2}であるというのなら、
関数のポインタ配列funcaryを作成し
funcary[0] = funcA;
funcary[1] = funcB;
funcary[2] = funcC;
としておいて(*funcary[ground])();といった形で関数呼び出しをするテクニック。

正直、多くのプログラムにおいて分岐のオーバーヘッドなど微々たるものであり、
そのへんに神経割くのならおそらく他にもっと注力すべきところが山ほどあるはづ。

そもそも1000個近くものswich-caseになるというのなら、
その構造自体に少し問題があるのではないかということにも思いをめぐらせた方がよろしい。
(1000ある情報を上位グループと下位グループに分けることで10個程度の分岐2回〜3回とかにするとかね)

手を抜いていいところと抜いてはいけないところの見極めというのは
初心者から中級者への階段の中でもかなり重要なポイントなので精進しなはれ。

正直、初心者のうちは、パフォーマンスうんぬんよりはブツを動かすことに専念した方がよろしい、
経験の裏打ちの無いチューニングはトンデモ処理の一里塚やぞ。

パフォーマンス重視という題目の元に、上級者から見たら失笑ものの処理をしている
「自称中級者」のコードをいくつ見てきたことか・・・