0

何を使用する必要がありますか: 新しく作成されたキャンバスにdocument.createElement("canvas")描画するか、事前に初期化されたキャンバス要素を含むバッファーからキャンバスに描画しますか? 最大のパフォーマンスと最小のメモリ消費を達成するための最良の方法は何ですか? これら2つの方法に顕著な違いはありますか? ガベージ コレクターは、で作成されたすべての一時的なキャンバスを削除しdocument.createElement("canvas")ますか?

4

1 に答える 1

1

<canvas>要素の作成方法(Javascript、HTML)のパフォーマンスに違いはありません。

どのように行うかに関係なく、要素の作成にはコストがかかる<canvas>ため、描画ループで要素の多くを作成する必要はありません。このコストはブラウザ固有であり、実装によって異なりますが、高額になる可能性があります。また、要素を作成しただけなのか、それとも初めて描画したのかによっても異なる場合があります。

実際の描画操作のパフォーマンスでは、キャンバスが画面上にあるか画面外(バックバッファ)にあるかが重要になる場合があります。また、ピクセルデータに直接アクセスする(データを取得する、データを配置する)には、最初にGPURAMからCPURAMにバックバッファーをダウンロードする必要がある場合があるため、それに関連するコストがかかります。

于 2012-11-19T21:39:09.670 に答える