HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0207
ぽぴループ処理について9解決


ぽぴ

リンク

2011/2/7(Mon) 05:37:38|NO.36926

え〜と簡単なことなのかも知れませんが教えてください。
ループ処理内にwait入れないでの処理の限界値が知りたいです!
CPUとかのスペックにも依存するのかも知れませんが、計算式とか分かる人いたら
教えてくださいませ。
よろしくお願いします。



この記事に返信する


SYAM

リンク

2011/2/7(Mon) 10:39:01|NO.36930

特に限界ってものはないと思います。
なんでwaitやawaitが必要かを理解していれば。



ぽぴ

リンク

2011/2/7(Mon) 22:45:44|NO.36947


waitはメモリーを一時的に解放するてことはことは分かってるんですが、
例えば


repeat 100000 redraw 0 color 2 : boxf color 0,255 pos 10,10 : mes 1+cnt redraw 1 loop

とすると、wait入れてないから、ループ回数8000回あたりかで処理はしていても
タイトルバーをつまむと固まりますよね。
で、何が言いたいの?て言うと、
画像処理とかそう言うゲーム関係ならloopの前あたりにawaitでも入れたらいいのかも知れませんが、
文字列検索とか文字列を検索して、またその文字列を置き換えるとか、そう言う処理にwaitとか
入れてたら処理が遅くなるんですが・・。
何か解決方法はないのかな〜〜て、思って書き込みました。
よろしくお願いします。



M

リンク

2011/2/7(Mon) 23:10:02|NO.36948

一定量検索したらwaitを入れる。
あるいは、一定量検索したら、wait待ちをさせるためにメインループに戻る。

というのは、どう?



ぽぴ

リンク

2011/2/7(Mon) 23:41:24|NO.36949

やはりcntの値からwait入れるタイミング見るしかないのですか><
分かりました。
ありがとうございました^^



先輩

リンク

2011/2/8(Tue) 01:14:19|NO.36955

ぶっちゃけ検索が終わるまでwait入れなくていい。
それでループが固まるなら検索量を減らすようプログラムすればいい。
検索は早さが大事。
逆に検索中にwait入れて変なメッセージ捕まえて処理が中断し、
再度頭から検索しなおしみたいなプログラムも作られかねない。
割り込みを発生させたくない状況では、冒頭で言ったとおり、ループが終わるまでwaitは入れない。



先輩

リンク

2011/2/8(Tue) 01:17:28|NO.36956

>?
>waitはメモリーを一時的に解放するてことはことは分かってるんですが、

その認識が間違っているから、大量検索で消費したメモリーをいったん解放するためにwaitを入れる、といった解釈が生まれるんです。
大間違いです。

検索しなおしてください。waitの意味を。検索は早さが大事と言いましたよね!?疑問に思ったら掲示板じゃなくて検索ですよ!!



ぽぴ

リンク

2011/2/8(Tue) 04:50:43|NO.36958

どうもすみません・・。
wait て、メモリー開放(他のタスクにメモリーを解放する)=プログラムの一時ストップ
て認識じゃだめなんですか?
昔買ったHSP2.55(古いですがすみません><)の本にそう書いてあったんですが。
先輩の解釈教えてください。
よろしくお願いします。



awer

リンク

2011/2/8(Tue) 08:25:30|NO.36959

waitはメモリーを解放などしません。
ウインドウズから送られてくる通知(メッセージ)を処理して返答するのです
なので長時間waitを入れていないと反応がないとしてウインドウズがこのアプリはフリーズしてると判断するのです。
そうならず、かつウエイトによる速度低下を防ぐには単にwait 0とすればいいです。
こうすればCPUパワーが100%使えます。



ぽぴ

リンク

2011/2/8(Tue) 23:59:40|NO.36975

すみません><
今朝古いHSP2.55引っ張り出して読み直したら、メモリーの解放とは書いてませんでした><
正確には他のタスク(他起動しているソフト)に時間を分け渡す。と書いてありました・・。
どこで間違ったことを拾ってきたのか分かりませんが、それを当たり前のように思ってたのが
恥ずかしいばかりです。
それからwait 0 とかそう言う手もあるのですか!!!
確かに実行を止めることなくフリーズしないloopのしかたてあったのですね><
目からうろこです^^
早速つかわせていただきます^^
ありがとうございました!



ONION software Copyright 1997-2023(c) All rights reserved.