プログラムの起動タイミングによって、起動回数10回に1〜2回程度の確立で、ループ速度がかなり
高速になってしまいます。
原因は恐らくwaitの実行速度の問題で、awaitにすると速度が安定します(当たり前ですが...)
目視で30倍ぐらいの差があるのですが、こんなに差が出るものなのでしょうか。
現在作成中のプログラムで利用しているのですが、リアルタイムでの利用は重要でないので、
できればwaitで少しでもCPU利用率を下げたいのですが(気にしすぎかもしれません)
ご意見、よろしくお願い致します。
以下、確認用プログラムです。
screen 0,200,60 // 変数 key_arrow = 0 // getkey用 delay_cnt = 0 // キー入力を遅延させるため(これが1以上の時はキー入力を受け付けない) push_key = 0 // キーを押しっぱなしにした時に増やす(この数値によって、キー入力の遅延速度を変える) count = 0 // ウィンドウに表示するカウント *main wait 1 // 「await 16」とかにすると安定する getkey key_arrow,38 // 矢印キー(↑) // 矢印キー(↑)が押されていない場合にキー入力の遅延解除 if( key_arrow == 0 ){ delay_cnt = 0 // キーの遅延カウントリセット push_key = 0 // キーの押しっぱなし入力フラグリセット } /* pushedが0ならキー入力を受け付ける_ここから *************/ if( delay_cnt==0 ){ // 矢印キー(↑)が押された場合 if( key_arrow==1 ){ count++ // 以下, push_keyの数値によって遅延速度(delay_cnt)の値を変える if( push_key==0 ){ delay_cnt = 40 // 遅延用のカウントセット(最遅) push_key = 1 }else{ if( push_key<=3 ){ // 遅延用のカウントセット(中速) delay_cnt = 20 push_key++ }else{ if( push_key>3 ){ // 遅延用のカウントセット(最速) delay_cnt = 5 } } } } } /* pushedが0ならキー入力を受け付ける_ここまで *************/ // 遅延用のカウントが1以上ならカウントを減らす if( delay_cnt>0 ){ delay_cnt-- } // カウントを表示 redraw 0 color 255,255,255:boxf color 0,0,0:pos 0,0:mes count redraw 1 goto *main