2010-03-16

MozillaはAppleからコードを借りた

Asa Dotzler: Firefox and more: mozilla borrowing a bit of code from apple

MozillaのJavaScriptエンジンに関する混乱があるようなので、David Mandelinのブログを紹介しておく。David Mandelin's blog » JägerMonkey & Nitro Components。また、a quick note on JavaScript engine components ✩ Mozilla Hacks – the Web developer blogも役に立つ。

俺は技術屋ではないが、まあ、こういうこったろう。

数年前、JavaScriptエンジンはみな、めちゃ遅かった。んでまず、Appleが、SquirrelFish Extremeを作った。これは、Method JITと呼ばれるテクニックで、JavaScriptを最適化してた。Mozillaは、TraceMonkyを作った。これは、トレーシングという呼ばれるテクニックで、いくつかのケースを、すばらしく高度に最適化できるんだ。最後に、GoogleのV8が現れた。こいつも、今はNitroと呼ばれているSquirrelFish Extremeによく似たテクニックで、最適化をしてる。

第一ラウンドの結果としては、Firefoxは、ごく限られたある種のコードを、すっげーサイキョーに高速化したが、残りのほとんどは、何もできずに終わった。今、JagerMonkeyによって、MozillaはNitroやV8のようなMethod JITと取り入れた。これによって、トレーシングが上手くいかない多くのケースを最適化できるようになり、ようやく俺らも、チョッ早になったというわけだ。

このMethod JITの実装には、AppleのNitro JavaScirptエンジンの一部を、再利用して、さらに、独自の新機能を付け加えてる。

さらにクールな事を教えてやろうか。method JITを取り入れたことによって、俺らは他のJSエンジンと肩を張れるようになったわけだが、さらに、トレーシング機能をつかって、より高速化が図れる余地を残しているってわけだ。つーわけで、俺らが世界最速になる場面が、今後増えるわけだな。しかも、他の場面でも、他のブラウザより遅くないと来ている。んでさ、AppleやGoogleや、あるいはOperaとかが、自分のJSエンジンにも、トレーシングが欲しくなってきたらどうするんだろうね。その場合、奴らはMozillaのコードを見て、俺らの仕事の結果を借りればいいってわけさ。

この人の文章が特に面白かったので、つい訳した次第。

3 comments:

Anonymous said...

本当に速くなってくれるといいんですけどねえ。
HTML5なブログとかツイートとか見てるとどっちを向いても「Chrome/Safari 4/Opera 10.50ちょっ速」「Firefoxもっさりすぎ」という評判ばかりで、かつてのIE6みたいにFirefoxが足を引っ張るせいでまともなHTML5サイトを作れないなんてことすらなりかねない勢いです。
まあまだJägerMonkeyは入ってないはずなのにMinefieldは体感で明らかにcanvasが速くなってるので、少しは期待できそうですが。

江添亮 said...

トレーシングの効果は、ちょっと疑問ですよね。
末尾再帰のループ化とかはしてほしいけど。

Indonesia Furniture Handicraft Wholesale Marketplace said...

I understand after translate this, I think mozilla stil the best browsre in the world.