で、実際のところHTML5でどのくらいのアプリが実装できるのか実験してみた
Javascript雑学:SetTimeoutについて知っておくべき事

モバイルブラウザーのデファクトスタンダードになりつつあるWebkit

Large-18  最近、なぜかいろいろなところでHTML5やら モバイル端末向けのブラウザーの話をすることが多いのだが、今年になってトレンドとしてはっきりと見えてきたのは、WebKitがモバイル端末のブラウザーのデファクト・スタンダードになりつつあるということ。

 私自身、最初にAppleがブラウザーを作ると聞いた時には「なんでそんな大変なことを今更?片手間でできる仕事じゃないぞ」と思ったりしたわけだが、その予想に反してAppleが見せた本気度とリーダーシップには本当に関心してしまった。


 世の中にすでに何百万とあるサイトとコンパチビリティを保つというだけでも大変な作業なのに(経験者語る)、CANVASやCSS Transform/Transitionなどの新しいコンセプトを次々に導入してHTML5の標準化でリーダーシップを取っている点は注目に値する。

 「スタンダードを決める」立場に自分を置く事がどのくらい重要かを理解しているはずのMicrosoftがInternet Explorer 3.0/4.0 で確立したデファクトの地位を全く活用できなかったのと比べると、わずか数パーセントのシェアのAppleがHTML5の標準化にこれだけの影響力を持つようになれるとは誰が予想しただろう。

 それもこれも、WebKitが「HTMLのrendering engineとJavascript engineがきれいに切り離されている(だからGoogle Chromeが独自のJavascriptエンジンを持つ事ができる)」「ハードウェアアクセラレータを利用しやすい設計になっている(AdobeがFlash9をiPhoneに載せられないのはそんな設計になっていないから)」「スマートフォンで動くぐらいコンパクト」などの他のどのブラウザーよりもアーキテクチャの部分で根本的に優れているのが理由なので勝負にならない。

 一番の動かせない証拠はiPhone上のSafariブラウザーの実装のすばらしさ。ハードウェア・アクセラレータ(GPU)を上手に使い、HTML5に採用される予定のCANVASやらCSS Transform/Transitionなどの数多くの機能を実装してしまっている点がすごい。

 私が知る限り、WebKitを使わずにHTML5をモバイル端末で実装しようとしている企業はどこもものすごく苦労しているらしい。Apple、Android陣営だけでなく、Nokia、RIM、そしてSony Ericsson までもWebKitの採用に踏み切ったのもうなずける。

 まだMicrosoftにいる私の知り合いたちから伝わって来る話によると、Windows Mobileチームの技術者たちもWebKitの採用を望んでいるという。しかし、上からの圧力でしぶしぶ時代遅れのOS(Windows Mobile 6.5は相変わらずWindows CEベース)の上に時代遅れのブラウザー(最新のIEは大きすぎるためIE6コードベース)を載せているためにモチベーションが思いっきり下がっているそうだ。今のペースだと、Windows Mobileがブラウザーも含めて今のiPhoneに追いつくのに3年はかかる。

 ちなみに、iPhone上のブラウザーでどのくらいのアニメーションができるかを調べるためにベンチマーク・プログラムを作ってみたので、<canvas>タグをサポートするモバイル・ブラウザーを持っている方はぜひとも試して結果を報告していただきたい(機種/OS/Browser/解像度)。私のiPhone 3GS (OSは3.1)だと30fpsぐらい出る。URLは http://widgetpad.net/67/play/index.html

Comments

rgb

HT-03A(Android)の標準ブラウザだと14fpsくらいです。

なかひで

iPhone 3GS (OSは3.1)で2、3分動かしてみました。max30.6でした。

jun

iPhone 3Gは17.11fpsぐらいまで出ました

isaac

iPhone 3G (OS 3.1) 17.46 max
やっぱ3GSに買い替えですかね?

AknEp

モバイル端末ではありませんが、参考まで。
MacbookProで Safari on Snow Leopard だと60fpsぐらい出ました。モバイル端末でこれの半分出るってのは驚異的ですね。

Gashi

Advanced W-ZERO3/[es](OS: Windows Mobile 6 Classic / 解像度: 800x480)のOpera Mobile 9.7 betaでmax 8.45fpsでした。

参考までに、MacBook (Early 2008)のOpera 10では40fps前後で動いてました。

Gackoo

今、手元で起動中の機種では、
iPhone3GS/OS3.1/MobileSafari/30.67fps
iPhone3G/OS3.1/MobileSafari/16.24fps
iPodTouch1G/OS3.1/MobileSafari/16.02fps
その他、
MacBookPro17inch2.16GHzCoreDuo/OS10.6.1/Safari4/50.32fps
G4Cube1.2GHzGeForce2/OS10.4.11/safari4/10.03fps
でした。

karappo

このベンチマークって、どの程度の信頼性がありますか?
MacPro 2.66MHz*4/MacOSX 10.6.1/Safari 4.0.3/ 60fps 前後
同じく、Firefox 3.5.3/ 67-68fps 前後
なんですが、あきらかに Safari 4.0.3 の方が、きれいです。
というか、Firefox は途中で描画が一度止まります。

Satoshi

 MacやPC上のブラウザーでのフレームレートはあまり参考にならないので注意してください。マルチウィンドウ・マルチタスク前提のパソコン用のブラウザーの場合、一つのウェブページのJavascriptがCPUを消費しすぎないように、スケジューラーがわざと遅延が入れて来る場合が一般的です。

 私のMac+Safariの場合だと、75fpsぐらいですが、複数ウィンドウを開いてそれぞれでベンチマークを走らせても、それぞれが75fpsで走ります。つまり、CPUそのものにはもっと高いフレームレートで描画する能力があるけれど、わざとそうしないように設計してあるということです。

jar

iPodTouch 1G/OS2.2.1; 8.25fps
以下はPC/Mac
PowerBookG4 PPC 1.5GHz/Go5200 64MB/OSX 10.5.8
Safari4.0.3; 22.74fps CPU;Process/Total=80%/100%
DELL CoreDuo 1.67GHz/Go7400 64MB/Win7 RC(Aero)
Safari4.0.3; 44.73fps CPU;Process/Total=48%/74%
FireFox3.0.14; 35.62fps CPU;Process/Total=47%/62%
でした

karappo

ありがとうございます
Satoshiさま。
ということは、MacOSX10.6であれば、Safariの方が、Firefoxより上手な管理をしているから、
描画がきれい(止まらない)という認識でよいのでしょうか。

Perry_Rhodan

Windows ユーザーでiPhone 3GS でのWEBアプリの勉強を始めました。
「WebKit」でどこまで、使えるのか調査中で、楽しみなデモですね。
デモは動きますが、そのデモのソースが開けません。
canvas の機能の中身を知るには、どの辺りに行けば、ライブラリーなどを
手に入れられますか。
申し訳ありませんが、教えて下さい。

Go

iPodTouch 1G/OS2.2.1; 8.25fps
PowerBookG4 PPC 1.5GHz/Go5200 64MB/OSX 10.5.8
Safari4.0.3; 22.74fps CPU;Process/Total=80%/100%
DELL CoreDuo 1.67GHz/Go7400 64MB/Win7 RC(Aero)
Safari4.0.3; 44.73fps CPU;Process/Total=48%/74%
FireFox3.0.14; 35.62fps CPU;Process/Total=47%/62%

keage

久々にこのベンチマークを試そうとしたのですが,
widgetpad.netの閉鎖と共にリンクが切れてしまってました…….

もしソースが残ってましたら再掲をお願いできますでしょうか?

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment

Your Information

(Name is required. Email address will not be displayed with the comment.)