忍者ブログ

主にウディタを使ってのゲーム製作についてのブログです  ※更新は不定期

【ウディタ】ループの処理負荷について
今日調べてたループに関する処理負荷をまとめておこうと思います。

<< ループ内の行数 >>
ループ処理を抜ける場合は
『ループここまで』コマンドまでの行数に応じて
処理負荷が変化します。

ループを抜けると言いましたが、ループを実行しない場合にも
行数が影響します。
-- ▼処理負荷比較 --
     

上記画像の結果のようにループ内の行数が多いほど
処理負荷がかかるみたいです。

行数が多いほど負荷が上がる原因は
ループを終了するときに『ループここまで』コマンドを
探索しているためだと思われます。


<< ループ中断 >>
『ループ中断』コマンドが実行されると
『ループ中断』コマンドの位置から下方向に
『ループここまで』コマンドを探索します。

ループを抜けるときにループ内の行数に応じて
負荷が変わったように
『ループ中断』~『ループここまで』間にある
処理行数に応じて負荷が変わります。

-- ▼処理負荷比較 --




<< ループ開始へ戻る >>
『ループ開始へ戻る』コマンドが実行されると
『ループ開始』地点へ戻ります。
このとき『ループ開始』地点は予め記録されており
『ループ開始』地点へ戻るときの処理負荷は一定だと
思われます。
(※複数のパターンで実験してみての印象ですので
 『ループ開始』地点が記録されていると断定はできません)

ただし、『回数付ループ』の場合は
『ループ開始へ戻る』コマンドが実行されたあとに
指定回数ループしたかどうかの判定が実行されます。
もしループが完了していた場合は
『ループ開始へ戻る』コマンドの位置から
『ループ中断』コマンドが実行されます。

よって『ループ開始へ戻る』~『ループここまで』間の
処理行数が多いほど、ループを抜けるときに処理負荷が
高まってしまいます。

-- ▼処理負荷比較 --




[ 余談(興味ない人はスルーでOK) ]
『ループ中断』コマンドが実行されると
現在のループ処理に対応する『ループここまで』コマンドを
探索します。
ここで言う対応する『ループここまで』コマンドというのは
『ループ開始』コマンドのインデントと
同じインデントに存在する『ループここまで』コマンドです。
インデントというのは以下のイベントコードで言う
<0>や<1>の数値のところです。
▼イベントコード
WoditorEvCOMMAND_START
[170][0,0]<0>()()
[0][0,0]<1>()()
[498][0,0]<0>()()
WoditorEvCOMMAND_END
この場合
[170][0,0]<0>()() が 『ループ開始』コマンド
[498][0,0]<0>()() が 『ループここまで』コマンド
インデントの部分を見ると同じ 0 がセットされています。
ここが一致する『ループここまで』を探索します。
つまりイベントコードを弄って本来は違うインデントのところで
対応した『ループここまで』コマンドを置くと
そこをループ終了地点と誤認させることができます。

拍手

PR
COMMENT
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
 管理人のみ閲覧
 
WoditorOptimizer - Ver2.0.1
┗最新版公開日 : 2017/08/31

WoditorOptimizer - Ver1.00 -
┗旧バージョン : 2015/04/18

WECDeletor - Ver1.01 -
┗最新版公開日 : 2012/11/03
09 2017/10 11
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
HN:
K-Shin07
性別:
男性
趣味:
ゲーム製作
自己紹介:
趣味でゲームを作っています
プログラマーです

開発ツール・使用言語等
WOLF RPG エディター
・HSP
・C
・VB
・Java
・C++
・C++/CLI
・C#
・アセンブラ
・Haskell

・PHP
・Ruby

・WPF

・DirectX( 9.0c )
・PhysX( 3.X系 )

Mail
 k07.alpha.stella[あっとマーク]gmail.com
[02/26 たかねぇ]
[02/24 たかねぇ]
[06/07 たかねぇ]
[04/23 たかねぇ]
Copyright ©  -- α-Stella[R]_ブログ --  All Rights Reserved

Design by CriCri  /  Material by 妙の宴  /  Background by K-Shin07  /  powered by NINJA TOOLS / 忍者ブログ / [PR]