「なでしこv1」開発掲示板

なでしこv1のバグや要望を書き込む掲示板
[一覧へ] > (@947) [中] [解決]
@947■ (#2977) 「間」「ループ」で65536回以上になると処理が遅い - TKI (2021-02-12 18:48) /中 未処理
【症状】
「間」「ループ」で65536回以上になると処理が遅くなる


【再現方法】
// 1秒ごとに回数を表示するプログラム
次表示時間はシステム時間+1000
1でループ
  もし次表示時間<=システム時間ならば
    回数を表示
    次表示時間はシステム時間+1000

(実行結果)
最初の1秒は65000回以上進むのに、それ以降は1秒に60回ほどしか進みません。

なでしこで「0秒待つ」すると0.015秒ほど処理が止まってイベントが処理されるので多分一致。
65536回以降は毎回イベントを見に行ってるため遅くなっているのだと思います。


【要望】
ループの何回かごとにイベントを確認することで「応答なし」を防ぎたかったのだと思いますが
ループの内容によっては65536回に1回ではやっぱり応答なしになりそうです。

ループの開始時にシステム時間をとって2秒ごとにイベントを見に行く、とかがいいと思います。

//疑似コード
イベント確認=システム時間+2000//ミリ秒
1でループ
  もしイベント確認<=システム時間ならば
    windowsのイベントを処理
    イベント確認=システム時間+2000//ミリ秒
  

【バージョン】
ver1.581

【その他】
2021/02/08 version 1.581
- 無限ループ対策で「回数」が4096で0に戻ってしまう問題を修正(@935)
に関連

(#3016) 確認しました - NON (2021-12-22 20:02) /中 未処理
これも直るとありがたいですね。
せっかく4096でラップするのが直ったのに、処理が遅くなると無限ループでは使えなくなってしまうので・・・

(#3018) 制限を解除しようと思います。 - クジラ飛行机 (2022-01-01 23:06) /中 未処理
『間』構文で、65535回に一度、イベントループを実行するよう修正しました。
https://github.com/kujirahand/nadesiko/commit/26c80804f8aa334ed84be86f1bc08b7f7782dd88

(#3041) 確認しました - NON (2022-01-22 12:27) /中 確認待ち
最新版では解消しているようです。対応ありがとうございました。
起票者でないので、一応解決にはしないでおきます。

(#3045) ありがとうございます - TKI (2022-01-30 14:28) /中 解決
対応ありがとうございます!

(#3051) 解決にします - クジラ飛行机 (2022-02-08 11:25) /中 解決
感謝です!

(#2977)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能