2012-03-23 6 views
1

私はちょっとしたHTMLキャンバスビジュアライザを楽しく作っていますが、それはChromeで恐ろしく実行されていることに気付きました.Firefoxではかなり悪いですが、iPhoneやiPadを含むSafariでは全く驚くほどです!なぜdrawImageはChromeやFirefoxと比べてSafariで非常に高速に動作しますか?

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

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

あなたはここでデモを表示することができます。http://lakenen.com/vis.html

任意の洞察力をいただければ幸いです!

PS。可能であれば、これをiPadで試してみてください。マルチタッチできちんとしています:)

答えて

0

パフォーマンスプロファイラはSafariとChromeでほぼ同じですので、これを自分で判断する必要があります。あなたのデモは、私のマシンのSafariとChromeの両方で正常に動作します。

とにかく、画像が読み込まれずに描画されたときにdrawImageがSafariよりChromeで悪化する理由はわかりませんが、それはです。それ以外の場合、WindowsではChromeの方が速いようです。

Here's a simple jsperf I made a while ago. Windows 7マシンでSafariの2倍の速さで動作するクロム19が表示されているようです。

+0

ええ、私はdrawImageに絞るためにプロファイラーを使用しましたが、これは私の質問に答えることができません。なぜですか? Chromeチームと一緒に取り組む必要があるのですか、何か間違ったことをしていて、Safariだけでよりうまく処理できますか? – lakenen

+0

実行中のマシンはなんですか?私のクロムはサファリの2倍の速さです。 (どのクロムのバージョンを使用していますか?) –

+0

OS X Lion(10.7.3)でChrome 17.0.963.83を実行しています。 Chromeは3 fpsのようになりますが、Safariは40〜50の範囲(同じサイズのブラウザウィンドウ)です。 – lakenen

関連する問題