2010-03-31

JavaScriptのベンチをCortex-A8上で取ってみると

先週末にNetWalkerを弄っていて、Ubuntu 10.04ベースに変えたんだけど (カーネルはまだ変えてないけど、ポーティングは終了してるから動作テストとかしないと)、ARM版の10.04だと、Chromiumがレポジトリに入っているんだよね。起動速度はFirefoxよりは速いんだけど、ちょっとした疑問が。"V8ってARMでも速いの?"

そもそもTraceMonkeyのアーキテクチャとして、CPUへの依存コードというのは最小限になっていて、LIRをコンパイルするだけになっている。なので、TraceMonkeyの肝はLIRの質とTracing可能な条件を増やすことで、そんなに各CPU毎の最適化は必要ない(もちろん最終的には必要なのだが)。また、V8ってのはそのような形式ではなくて、ゴリ押しでコンパイルするだけという割り切った仕様になってる。だから、各CPU毎の最適化ってのはちょー必要で、x86以外ちゃんとやってるのかどうかってのが疑問だった。

また、W3C Japanese IGでアクセスのNetFrontの開発の方にお会いした時に、各社ARM上でのJITってどうするのって話になって、「MozillaはARM用のJITは投入されているけど、他社はまだまだ正式投入はまだみたいだね。知る限りNitroもARMのJIT持ってるし、V8もARMのJITあるよ。」という風に答えていたんだけど、実測したことなかったし、ARM上のベンチマークも見たことがない

ということで、いろいろとテストしてみた。

グラフが汚いのはGoogle Docsのせいだけど、TraceMonkeyの方が速いってどんだけ他の会社手を抜いてんねん。Mobileだって重要だろうに。でも、凄く興味があるデータがとれた。

ちなみに、V8ベンチはTraceMonkeyよりもV8の方が速いのは当然。でもx86の時と比べて差が低くなってる。

2010-03-29

プレゼン資料二つアップロード

今月2回も話す場所があったので、その際に作成した資料をアップロードしました。

一つ目はW3C SVG IG JapanでMozillaとSVGの話。Acid3テストが100点じゃない理由が書いてあります。

もう一つは、JAGATのクロスメディア研究会で話してきたCSS3の話。Webフォントの話はまだドラフトのドラフトですけど。

ご参考まで

2010-03-24

OperaがOpera MiniをApp Storeに申請したらしいが

アップルは、(iPhoneに内蔵している)WebKitをレンダリングエンジンとして利用したブラウザ以外は許可しないということを許諾書に書いていたはずなので、おそらく事前にアップルとの協議で物別れになったんだろう。

なので、App Storeに申請 -> Appleに却下 -> 世論を味方につける or アップルをEU政府に訴えるってところを狙ってやってんじゃないかな。以前のGoogle Voiceの時と一緒でね。

で、 Firefoxは?っていうと、ノーコメント。
http://hg.mozilla.org/users/dougt_mozilla.com/arcticfox-patches/

2010-03-22

イノベーションには必要なものは?

いつもとは全然違う話になるけど。

そもそも十代の頃からクラブに行くようになってたんだけど、ここ1、2年はDJ環境もPCDJがある程度多くなってきてる。そこらは、Final Scratchから始まったものだけど、複数のトラックのつなぎに3台のターンテーブルを使わなくても、即座に切り替えられるので、結構やりたい放題のDJってのができる。

いろいろな自由度が増してるからDJはより面白くなるはずなんだけど、オレが年取っただけかもしれないが、PCDJのDJを見てると、なんかやり過ぎ感があってていうか、グルーヴ感がなくなってる気がする。

世の中の音楽の歴史上、自由度が増すから新しいものが出てくるってのはそんなにない。テクノとかハウスだって、TB-303とかTR-808とかの音の作り方に制限のある機材を本来の目的とは異なった使い方で使うことでイノベーションしたわけだしね。また、サンプラーを使う場合においても同様で、ブレイクビーツの再発明においては、逆に音を悪くする(サンプラーで打ち込むネタを取り込む時にS950を使うとザラついた感がでるとかね)とか、制限を利用して新たなものを作りだしたわけだ。

前、Google Chromeの拡張のAPI Expertのos0xさんと話した時に、「Chromeの拡張APIだとこういう制限があって、その制限でやりくりするために、いろんなアイデアが必要になる」という話を聞いた。例えば、No Referrerをやるような拡張を作る場合は、正攻法で攻めるとやる方法がないので、Data URLからhttpへはReferrerがセットされないことを利用して、上手くごまかすようにするとか。自由度がなければ、その中でいろんなアイデアって人の中で生まれるんだなっと。

いろんなイノベーションを起こすには、自由だということは必ずしも必要がないかも。人間の思考ってのは、ある程度制限を加えた方が、より面白いことができるんじゃないかなって。

こんなことを、ちょっとクラブ行った時に思った。そんだけ。

2010-03-17

canvasベンチ

canvasタグを8倍高速化する方法&FlashCanvasが4倍速くなったに書いてあるベンチマーク、Firefox 3.7 + Direct2Dバックエンドで動作させると、大体Safari 4.0と同様のスピードになる (Chrome 5.0は全部の中で最速)。

また、putImageDataとかgetImageDataはFirefox 3.6までだと相当遅いので、これは3.7になれば、約数倍早くなるよ。(割り算はクロック数使うから、割り算しないロジックに変更した結果)

あと、Canvas系で遅いのは、大体TraceMonkeyがJIT化にコケる場合が多い (結果としてインタープリタのまま実行されてしまうことになってしまうため)。JaegerMonkeyがLandされれば、TracingのJITがコケてもJIT化されるから、1.2倍から2倍くらいは速度が改善すると思う。

ちなみに今日の昼、テストでWindows x64用のJaegerMonkey対応コードを書いていたけど、V8のベンチが項目によっては最大2倍くらい早くなってた。特にV8のベンチは、TraceMonkey的には苦手なものだらけなので、TracingがAbortingした後にJaegeMonkeyによって高速化できれば、相当改善が可能になるだろうね。

2010-03-14

そういや、MeeGoってどうなるの?

IntelとNokiaの発表でmaemomoblinが合体して、MeeGoになるらしいんだけど、今ある情報からすると、、、

  • Nokiaの偉い人 (Maemo部門のトップ) は、いろんなところで、「Nokiaの戦略としてスーパーハイエンドはすべてMaemoで行くつもり」って発言してる
  • Maemo 6はQtベースで作ってる。(だから、Maemo 6用のFirefoxはQtベースにしようとしているため、モバイルチームがQtのコードをいろいろ実装中)
  • MoblinはGTK+Cutterじゃなかったっけ?。もろQtと被ってるけど、Maemoな人たちは、Qtで作業してるよね
  • Maemoはdebベース。でもMoblinってRPMじゃなかったっけ?。でもMaemo 6やってる人たちはRPMに変わるなんて一切言っていないから、おそらくdebベースのまま。

ということは、Moblinの成果ってカーネルだけで、すべてサヨウナラってこと?。インテルがソフトウェアで成功した試しがないという伝説の新たな一ページになっただけか、Moblinって。

2010-03-13

Ubuntuの新しいテーマ

ATOKのツールバーが非常にダサくなってしまったよ。

それよりも、Ubuntuのlibnotifyでクリッカブルの通知受け付けないのは納得いかない。通知メッセージがクリッカブルを受け付けないデスクトップの場合は、XULベースの通知ウィンドウだすのではなくて、クリックを受け付けないようにする設定作った方がいいのか?