SRC質問掲示板Mk2
(現在 過去ログ97 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■17634 / inTopicNo.1)  ローカル変数について
  
□投稿者/ ガッキー -(2005/10/21(Fri) 16:02:08) [ID:8sKoMzAK]
    はじめまして。
    サブルーチン内で、与えられた変数を用いる場合にその変数をArgs()変数として使用する場合と、ローカル変数に格納して使用する場合とでは処理速度に違いはあるのでしょうか?
引用返信/返信 削除キー/
■17638 / inTopicNo.2)  Re[1]: ローカル変数について
□投稿者/ 黒茶 -(2005/10/22(Sat) 16:21:47) [ID:rAzKzOGG]
     結論から言いましょう。差はあります。Args()で引用するより、LocalとSetコマンドを利用した方が高速です。
     ただ、差は微々たるものです。差はどの程度になるのか、実際に比較してみてはどうでしょうか? 下に2つのマップコマンドを用意しました。実行すると"引用した数値で加算"と、"格納した数値で加算"の処理を50,000回繰り返し、処理にかかった時間を表示します。


    ===

    マップコマンド 引用した数値で加算:
    Call 引用した数値で加算 1
    Exit

    マップコマンド 格納した数値で加算:
    Call 格納した数値で加算 1
    Exit

    引用した数値で加算:
    local BT_T1 BT_V
    Set BT_T1 GetTime()
    For i = 1 to 50000
    Set BT_V (BT_V + Args(1))
    Next
    PlaySound Calltone.wav
    Talk システム
    "処理時間$((GetTime() - BT_T1) / 1000)秒"
    End
    Return

    格納した数値で加算:
    local BT_H BT_T1 BT_V
    Set BT_H Args(1)
    Set BT_T1 GetTime()
    For i = 1 to 50000
    Set BT_V (BT_V + BT_H)
    Next
    PlaySound Calltone.wav
    Talk システム
    "処理時間$((GetTime() - BT_T1) / 1000)秒"
    End
    Return

    ===

     10〜20秒くらい待てば、結果が表示されます。
引用返信/返信 削除キー/
■17650 / inTopicNo.3)  Re[2]: ローカル変数について
□投稿者/ ガッキー -(2005/10/25(Tue) 13:17:03) [ID:Rj779T54]
    なるほど、早速やってみます。
    ありがとうございました。

引用返信/返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Pass/

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

- Child Tree -
- Antispam Version -