![]() |
A Quick Introduction to Tamarin Tracing - by Chris Double氏 |
Webシステム開発用の言語としてJavaScriptが日に日に重要な位置を獲得しつつある。複雑なシステムを開発するとなるとその実行速度が問題視されるJavaScriptだが、コンパイル技術の導入やJITの導入で状況は改善されようとしている。特にFirefox 4で導入が予定されているAdobe Systemsから寄贈されたTamarinはJavaScriptの実行速度を劇的に向上させることになる。
Chris Double氏が3日(米国時間)、同氏のブログにおいてA Quick Introduction to Tamarin Tracingのタイトルのもと興味深いドキュメントを公開た。同氏は同ドキュメントで"tracing jit"と呼ばれる技術を活用した実装"Tamarin Tracing"について言及し、その効果を簡単なベンチマークとともに示した。
"tracing jit"は同ドキュメントによればコードの実行を追跡し、よく実行されるポイントを判別してコンパイルを実施する技術のこと。同技術を使って実装された"Tamarin Tracing"はオープンソースソフトウェアとして公開されており、Mercurialリポジトリ経由で取得できる。
同氏はフィボナッチ関数を作成し、いったんJavaScriptコードをabcバイトコードへコンパイル。コンパイルしたバイトコードを"tracing jit"技術が有効になった状態の仮想マシンと、無効になった状態の仮想マシンで実行し速度を比較している。実行結果はJITが有効になった仮想マシンの方が13倍以上高速というものだ。繰り返し処理でJITが効きやすい状況が作られているわけだが、注目に値する処理速度といえる。
同氏はこうした結果を踏まえたうえで、Tamarin TracingのインタプリタがForthで開発されていること、abcバイトコードがForthで採用されている低レベル命令で記述されていること、tracing jitはこの低レベル命令に対してコンパイルを実施していること、ForthからC++へのコンパイラはPythonで実装されていることなどを指摘している。同技術はJavaScriptに限らずほかのスクリプト言語にも応用できそうだ。特にバイトコードにForthを採用したことは注目に値する。ほかのスクリプト言語への応用も踏まえてかなり興味深いプロダクトだ。
| 超新星残骸中にないはずの多量の一酸化炭素 - 天文衛星「あかり」が発見 [21:42 2/9] |
| 【レポート】ROBO-ONE委員会 - 第20回大会でのROBO-ONE Lightの開催を決定 [20:27 2/9] |
| 火星に海の存在を示す有力な証拠が発見される - ESAが発表 [18:48 2/9] |
| iOS向けSPDYライブラリが登場、普及はじまるSPDY [11:57 2/9] |
| GitHubのアクティブプロジェクト、もっとも多いのはMITライセンス [11:42 2/9] |
|
大東駿介、改名後初の写真集発売--名前を変えたのは「自分の決意表明です」 [00:30 2/10] エンタメ |
|
悲しいけれど超ウマい!極貧芸能人が編み出した奇跡のアイデアレシピベストテン! [00:06 2/10] キャリア |
|
みんなが聴きたい女性アーティスト・ラブソングベスト30を思い出の映像と共に発表! [00:05 2/10] キャリア |
|
でかっ!体長12mもあるジンベイザメが水揚げされる(動画) [00:04 2/10] キャリア |
|
間違って送ったFacebookの友達リクエストを取り消す方法 [00:03 2/10] キャリア |