条件内容が与える負荷について

ホーム フォーラム CF2.5使用法全般 条件内容が与える負荷について

  • このトピックには3件の返信、2人の参加者があり、最後にASDにより7年、 2ヶ月前に更新されました。
4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • 投稿者
    投稿
  • #13618
    ラクレス
    参加者

    いつもお世話になっております
    質問頻度が多く申し訳ありません

    CF2.5の使い方にはだいぶ慣れて来たのですが
    同時に自分のイベントの組み方に疑問を持つ事も増えてきました

    その一つが条件の使い方なのですが
    例えば 数式の答えを変数に代入したい時に
    代入するタイミングをフラグやフラグ用の変数で管理する場合
    代入を行う手前でフラグを立て 代入後にフラグを伏せますが
    答えが変わるたびに即座に更新されてもいい値である場合
    ・変数A*変数B<>変数C
    のような “代入値と異なる” を条件にしてフラグや変数の枠を浮かせています
    これが複雑な数式だったり負荷の大きい画像の状態取得だったりした場合
    “代入値と異なる” を使わずに単純なフラグを用意した方が
    計算をさせる事無く負荷が軽いなどといった事はあるのでしょうか

    一行内の条件を並べる順番にしても 結果が変わってしまわない範囲で
    単純な条件を上にすれば その条件が満たされなかった時点で
    それ以降に複雑な参照条件があってもスルーされて負担にならない
    といった事にはならないのでしょうか

    複雑な条件が増えると毎フレームそれを参照するだけで
    結構な負担になってしまうのではないかという疑問です

    #13623
    ASD
    キーマスター

    >>ラクレスさん
    内部の詳しい処理手順については解りませんが、単純な条件の方が判定にかかる負荷は軽いであろうということは想像できます。

    他に負荷を抑える方策としては『条件を満たし続ける限り常に実行される』という条件でも『連続時1回のみ実行』の条件を加えても結果が同じであれば、抑制するほうが処理は軽いです(例:『フラグ0が有効』単体だとフラグ0がONである限り毎フレーム実行されるが、『連続時1回のみ実行』を加えることで最初の1回のみになる)。

    #13647
    ラクレス
    参加者

    アドバイスありがとうございます!

    あまり気にしても意味の無い事なのかもしれませんが
    例えば常に値を監視する必要があるイベントでは
    ・A <> B+C
     A に B+C を代入
    として更新の必要がある場合だけ処理させるようにしていますが
    A <> B+C の条件判定にかかる負荷と A に B+C を代入する負荷が同じであれば
    ・常に実行
     A に B+C を代入
    のようにしても、どうせ判定で計算させるなら一緒なのではという疑問があり
    もし一緒ならば一行にまとめる事が出来るイベントが増えて行数を抑えられ
    制作も楽になるし”常に実行”でもいいのではないかと思ったのです

    イベントが3000行を越えてきて少しでも行数を節約したいと思っての事なのですが
    こういった疑問はやはり問い合わせても取り合ってもらえない様な内容でしょうか

    #13654
    ASD
    キーマスター

    以前別のトピックにてグローバル変数の比較条件を1つずつ書く代わりに高速ループを使用して行数を減らすサンプルをアップしました。

    グローバル変数の指定の仕方

    ただ、行数は減ったものの、ループ処理を使用したため、単純に変数の比較をするより処理の負荷は高まったものと考えられます。
    行数が少なくなれば、エディタ上ではすっきりしますが、処理の負荷は逆に高まる場合もあります。

    ご質問の「A <> B+C」を「常に実行」に置き換える件は、「A <> B+C」が常に最初から最後までずっと満たし続ける条件であるのなら、「常に実行」に置き換えれば、後者の方が単純条件になるので負荷は軽くなるでしょう。しかし「A <> B+C」にならないタイミング(「A = B+C」になる)が存在するなら、その時はイベントそのものの実行がされなくなるため、問答無用で変数を代入し続ける「常に実行」よりも結果としては動作は軽くなる可能性があります。

    >こういった疑問はやはり問い合わせても取り合ってもらえない様な内容でしょうか

    些細な疑問であっても開発元は教えてくれますよ。むしろこういった疑問から思わぬアップデートにつながる事もあるかもしれません。

4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • このトピックに返信するにはログインが必要です。