Chrome 9の2Dアクセラレーションは遅くなったりする!

id:revulo さんに教えてもらったのですが(Thanks!)、id:mindcat さんの ベンチマークがすごく良くできています!Canvasのベンチマークテストを作って速度を比較してみた - 風と宇宙とプログラム

掲載されている、Chrome 9 のベンチマークが2Dアクセラレーションを無効にしているようなので、有効にしてみました。2Dアクセラレーションは --enable-accelerated-2d-canvas を実行時の引数につけると有効になります。デフォルトは無効です。

マシン環境は以下の通り。ちょっと古くてごめんなさい。

項目名 アクセラレーションあり アクセラレーションなし 速くなっている
hline 20.1 (0.668) 33.7 (1.12)
vline 20.0 (1.33) 29.7 (1.98)
line 14.9 (2.49) 19.1 (3.18)
rect 19.7 (3.93) 24.6 (4.93)
fill_rect 17.5 (3.51) 19.8 (3.97)
lines 29.3 (3.66) 38.5 (4.81)
arc 9.97 (2.49) 12.1 (3.02)
fill_arc 9.95 (1.42) 11.6 (1.66)
bezier 8.49 (2.83) 9.50 (3.17)
fill_bezier 6.40 (1.60) 6.94 (1.74)
quad 11.8 (2.95) 13.9 (3.47)
curves 18.4 (3.68) 24.8 (4.95)
fill_curves 12.1 (1.52) 16.2 (2.03)
stroke_star 4.29 (0.613) 6.81 (0.973)
fill_star 8.27 (0.689) 11.4 (0.949)
transform 0.209 (1.04) 0.283 (1.42)
image 5.93 (19.8) 3.49 (11.6)
image_scale 5.94 (7.42) 1.30 (1.63)
image_rotate 0.896 (2.99) 0.234 (0.780)
linear_gradient 2.93 (1.47) 3.89 (1.94)
radial_gradient 0.164 (0.546) 0.181 (0.603)
text 1.50 (2.50) 1.87 (3.12)
clip 2.14 (2.67) 3.03 (3.79)
Total Score 1.57 1.81

CPU や GPU のバランスで結果が変わる可能性は高いと思います。特に、Windows 7 で変わる可能性もかなりあります。ちなみに、Chrome 7 と 9 の差は、ほぼありませんでした。

image 関係3つ以外は遅くなっています。ただし、image_scale と image_rotate はすごく速くなっています。

http://ie.microsoft.com/testdrive/Performance/FishIETank/Default.html というマイクロソフトベンチマークがありますが、これは、image_scale のベンチマークです。IE9 はいち速く GPU 採用をし、GPU で速くなるのは、image_scale なので、マイクロソフトベンチマークは image_scale ベンチマークがたくさんあります。個人的に思うのは、実際に が使われるさい、ボトルにネックになるのは、image だと思います。

今のところ、GPU使っても必ずしも速くならないというのは要注意ですね。でも、マシン・OS依存ぽいなぁ…。