1

楽しみのために小さな HTML キャンバス ビジュアライザーを作成しましたが、Chrome ではひどく動作し、Firefox ではかなり動作が悪いことに気付きましたが、iPhone や iPad を含む Safari ではまったく驚くほど動作します!

誰でも理由を説明できますか?

コードはかなり単純である必要があると思いますが、基本的には、マウス (またはタッチ) の位置のポイントを描画してから、drawImage を使用してキャンバスを一時的なキャンバスにコピーしています。そこからディスプレイ キャンバスをクリアし、一時キャンバスをコピーして戻します (4 回)。ただし、回転、オフセット、透明度、スケールなどのいくつかを適用し (そしていくつかの異なる globalCompositeOperations をいじって)、すべて drawImage を使用します。したがって、drawImage は各ループで合計 5 回呼び出されます。

ここでデモを見ることができます: http://lakenen.com/vis.html

どんな洞察も大歓迎です!

PS。可能であれば、iPad でこれを試してください。マルチタッチでかなりきれいです:)

4

1 に答える 1

0

パフォーマンス プロファイラは Safari と Chrome でほとんど同じなので、自分で判断できるはずです。あなたのデモは、私のマシンの Safari と Chrome の両方で正常に動作します。

とにかく、drawImage のパフォーマンスが Safari よりも Chrome の方が悪い理由はわかりませんが、画像の読み込みに失敗して描画された場合にのみそうなります。それ以外の場合、Windows では Chrome の方が高速に見えます。

これは、私が少し前に作成した単純な jsperf です。私のWindows 7マシンでは、Chrome 19がSafariの2倍の速さで実行されているようです。

于 2012-03-23T17:43:10.337 に答える