米Apple CEOのSteve Jobs氏がAdobeのFlashを非難する発言が話題となっているが、iPhone OSでFlashをサポートしない理由として、同発言にもあるようにFlash自体のバグの多さに加え「FlashはCPUリソース食い」「HTML5で代替できる」といった理由も聞かれる。では実際に、Flashはリソース食いでHTML5で代用できるものなのだろうか? その検証結果を見てみよう。

検証を行っているのはStreaming Learning Centerで、紹介するデータはFlashの「CPU Hog(CPU食い)」という現象をCPU使用率から確認してみたというものだ。詳細な検証結果は「Flash Player: CPU Hog or Hot Tamale? It Depends.」という記事で確認できる。ベースのOSとしてMac OS XとWindowsを用意し、さらにSafari、Chrome、Firefox、Internet Explorer(IEはWindowsのみ)のそれぞれのブラウザでFlashとHTML5を利用した場合のCPU使用率を測定、そのCPUへの"やさしさ"を判定するというものだ。CPU負荷が大きいほど処理負荷が大きく、ノートPCの場合は特にバッテリ駆動時間に影響を与える。先入観だけでなく、実際にFlash利用の有無がどの程度影響を与えているのか調べるのが狙いだ。

検証環境の詳細については元の記事を参照してほしいが、Mac環境のテストに用いたのはMacBook Pro (Mac OS X 10.6.2、Intel Core 2 Duo 3.06GHz、8GBメモリ)、Windows環境のテストに用いたのはHewlett Packard 8710w (Windows 7 64bit、Intel Core 2 Duo 2.2GHz、2GBメモリ)となっている。これにSafari 4.0.4、Firefox 3.6、Chrome 4.0.249.89 (Mac版は5.0.307.9ベータ)、IE 8.0.7600.16385をブラウザとして利用する。

なおAdobeのアドバイスにより、ハードウェア・アクセラレーションが強化されているFlash Player 10.1と10.0の2つを別々にテストして、その効果も調べている。Flash 10.0でもハードウェア・アクセラレーションをサポートしているが、有効となるのは動画再生をフルスクリーンで行った場合と非常に限定的なため、Flash 10.1のほうが効果が大きい。そのため今回のテストではYouTube動画の再生が中心となるが、720pのHD動画(「Rosie tackles the new HP Z800」)を通常モード(フルスクリーンモードではない)で再生してCPU利用率を測定する。また、ブラウザ環境によってはHTML5によるビデオ再生をサポートしないため、その際は測定不可と記載している。

Mac OS Xでのテスト結果(出典: Streaming Learning Center)
MacBook Pro - YouTube Safari - HTML5 Safari -Flash Chrome - HTML5 Chrome Flash FireFox Flash
CPU utilization Flash Player 10.0 12.39 37.41 49.89 50.39 40.25
Flash 10 vs HTML5 - 202% - 1% -
CPU utilization Flash Player 10.1 12.39 37.07 49.89 49.79 42.07
Flash 10.1 vs HTML5 - 159% - 0% -
Change from 10.0 to 10.1 - -14% - -1% 5%
Windowsでのテスト結果(出典: Streaming Learning Center)
HP 8710p - YouTube Safari - HTML5 Safari -Flash Chrome - HTML5 Chrome Flash FireFox Flash IE - Flash
CPU utilization Flash Player 10.0 測定不可 23.22 25.66 19.55 22.00 22.41
Flash 10 vs HTML5 - NA - -24% NA NA
CPU utilization Flash Player 10.1 測定不可 7.43 25.66 10.73 6.00 14.62
Flash 10.1 vs HTML5 - NA - -58% NA NA
Change from 10.0 to 10.1 - -68% NA -45% -73% -35%

テスト結果について結論からいえば、HTML5モードとFlash利用モードでたいした差がないのが実際だ。例外はMac OS X上でSafariを利用した場合のみで、ここではHTML5とFlash時でCPUの利用率に倍近い差があり、HTML5を利用したほうがCPU負荷が非常に少なくなっている。実験者のJan Ozer氏も指摘しているが、SafariのHTML5ではハードウェア・アクセラレーションが効いており、これがCPU負荷軽減につながっているようだ。一方SafariでFlashを利用した場合や、ChromeやFirefoxを利用した場合で、Flashの有無に関わらずCPU利用率はたいして変化していない。しかもFlash 10.0と10.1でほとんど差がない。

Windows環境ではどのブラウザ利用にも関わらず、Flash 10.1導入でハードウェア・アクセラレーションの効果が一定以上見られている。IEの場合で35%、Chromeで45%、Safariで68%、Firefoxで73%のCPU使用率減少効果があった。また比較対象がChromeしかないが、HTML5とFlashとの比較でFlashのほうがCPU利用率が低くなっている。これはハードウェア・アクセラレーションに加え、FlashのほうがCPUの効率利用が実現できている可能性を意味する。

以上を踏まえれば、Mac OS XプラットフォームにおけるFlashはハードウェア・アクセラレーションの恩恵を受けられず、Windowsほどのメリットは享受できていないことがわかった。AdobeがMac OS XにおけるFlash開発にWindowsほど力を入れていないのか、あるいはAppleが何かの技術ブロックを行っているかは不明だが、少なくとも現時点でMac OS XのWeb動画再生ではHTML5のほうがメリットを享受できる可能性が高い。ただ、FlashがCPUリソース食いかどうかはプラットフォーム依存であり、一般に言われているほど一概に判断できるものではないようだ。