ぶれこみ さんが書きました:
僕の作成したgame_overサブルーチンだけ、body onloadで走らせてみました。すると、タイマー表示もキーイベントもすんなりいき、問題は認められませんでした。
つまり、
ぶれこみ さんが書きました:
seTIntervalやsetTimeoutを多用している箇所でとまるので、なにかタイマーに関わる問題ではないかと思うのですが
というのは見込み違いで別の問題ということになりそうです。
ぶれこみ さんが書きました:
ググって調べてみましたら、firefoxのタスクマネージャーというのに行き当たり、タスクマネージャーで使用メモリ量をしらべてみたところ、CPUが100%いってしまっておりました。これは、要するにメモリ容量オーバーということでしょう。
何を調べてどういう論理展開でそうなったのかわかりませんが…
「CPUが100%」というのは、CPUが休み時間なく仕事をしている状態を示しています。
特定のタスクで100%になっているのであれば、その他のWindowsの処理を行う余裕がなくなり、マウスにも反応しなくなり、ウインドウの表示の更新もままならない状況となるわけです。
簡単に言うと処理を適切にWindowsに返していない状況です。
ループ処理をずっと回したり、デッドロックして抜け出せなくなったりといったことが考えられるでしょう。
「メモリ容量オーバー」とは直接は関係ありません。
処理をずっと回してメモリーを食いつぶした結果メモリー不足になるかもしれません。
またメモリー不足によって処理が停止してCPU使用率が100%に貼りつくかもしれません。
でもCPU使用率とメモリー使用量はイコールではなく別の事象です。
ぶれこみ さんが書きました:
しかし、firefoxって、よけいにメモリ食うんですね。初めて知りました。
その認識は疑問です。
ゲームアプリが内在している問題でメモリーリークを起こしているのでしょう。
それがBlink系ブラウザーではあまり表面化せず、Firefoxの場合に表面化しているだけだと思います。
Firefoxにも 優秀なデバッガーやプロファイラーなどのツールが備わっていますので、それを使って問題個所を突き止めてみてはいかがでしょうか。
Firefox Developer Tools【追記】
ゲームを少しプレイしてゲームオーバーにしてみましたが、プレイ中とゲームオーバー演出どちらもCPU使用率が100%になったり、メモリーを極端に消費するようなことはありませんでした。
どういう状況で発生するのでしょう。