3
6

【JavaScript】Canvasの描画がじわじわ遅くなる原因

Last updated at Posted at 2024-09-10

結論

図形を描画する前にcontext.beginPath()しましょう。

終わり。

おまけ

Canvasに1/60秒間隔で描画処理をしていたのだが、4分くらいたつとFPSが低下する現象が発生した。
全く原因が分からず

  • setIntervalrequestAnimationFrameに変えても効果なし
  • キャンバスの最適化に従っても効果なし
  • メモリの解放忘れでもなさそう
  • ググっても全く参考になるサイトが見つからない

という状態で絶望していた。

そんな中、ソースの原因箇所を特定すべく描画処理を消しまくってcontext.rect()が原因だということに気づき、やがてbeginPath()で解決できることが分かった。

「まあほぼ画像関係が原因だろうな。」と思い込んでいたこと、再現まで時間がかかることから長い間デバグ沼にハマってしまった。

ついでにChatGPTくんに聞いてみた。

image.png

全く知らんかった。。。

3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6