if文の処理速度

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
yk

if文の処理速度

#1

投稿記事 by yk » 14年前

計算をする前にif文で否かどうかといのは判定した方がいいですかね?
例えば敵の当たり判定なんかありますよね?
別にif文なんかつけなくても表示されてなければ処理に影響はないわけですが
if文をつかって「敵が描画されている時だけ当たり判定の計算を行う」といった処理にした方が
処理速度は向上しますか?

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前
住所: 北海道札幌市
連絡を取る:

Re: if文の処理速度

#2

投稿記事 by Dixq (管理人) » 14年前

何故存在しない敵とのあたり判定を行っているんですか?
また、「あたった」と判定した時に、敵が非表示なら処理に影響しないということは、一連の処理の中でif文が使われているものと思います。
あたり判定を行う前にif文を持ってくれば計算量は減ると思います。

どれくらいの計算量か、どういう計算式かはわかりませんが、2Dだと仮定して、
math関数を多用しない限り、また、あまりに弾が膨大な数ではない限り、あたり判定がボトルネックになることは少ないです。
処理速度向上を狙うなら描画周りを改善した方がよいでしょう。

但し、なるべく計算量を少なくしようとするのがプログラマーの求めるところでありましょう。
不要な計算はするべきではないです。

また、何がどれ位ボトルネックになっているのかをはっきりさせたい時は自分で処理時間を測定してみると良いと思いますよ。

yk

Re: if文の処理速度

#3

投稿記事 by yk » 14年前

そうふぇすめ
ありふぁふぉうございがみた

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: if文の処理速度

#4

投稿記事 by ISLe » 14年前

リンクリストあたりを使って管理すれば、そもそも存在しない敵に処理が回ってくること自体が無くなりますけどね。
yk さんが書きました:別にif文なんかつけなくても表示されてなければ処理に影響はないわけですが
配列を使っていてゴミデータが残っていたら表示されていなくても処理に影響あるのでは?

むかしは存在しない敵の座標に絶対値の大きい負の数を入れて当たり判定を回避するテクを使うことがありました。
そういう手を使っているならいくつかのif文を省くことができると思います。
メモリ使用量を若干削れるメリットはありますが処理速度は無視できるくらいの違いでしょう。

閉鎖

“C言語何でも質問掲示板” へ戻る