次期 ActionScript コンパイラ Falcon の情報

アドビの言語設計リサーチグループに所属する Avik Chaudhuri のブログに、現在開発中の次世代 ActionScript コンパイラ Falcon の情報が公開されています。コメントも含め興味深い内容ですので、関心のある方はご一読をお勧めします。

The V8 Myth: Why JavaScript is not a Worthy Competitor

... 以下は、簡単な内容の紹介です。

ActionScript で記述されたコードは、バイトコードにコンパイルされて、AVM 上で実行されます。現在の実装では、AS コードをコンパイルする時の最適化は殆ど行われず、実行時の JIT による最適化がパフォーマンスの要となっています。

(AS コンパイラには、もうちょっと頑張って欲しい気がしますよね)

AS2 から AS3 への大きな変化は、型付け機能の強化でした。そこで、これを事前コンパイル時に活用しようと考えた Avik は、Falcon に型推論の機能のプロトタイプを実装してみたそうです。 (実装したロジックはこちら

そして、Google V8 エンジンとのパフォーマンス比較を行ったところ、以下のような結果になったようです。最初の数値が V8、次の数値が Falcon 改 + AVM の処理時間です。

(テストには、Tamarin の jsbench 等が使われたとのこと)

  • SOR: 23.1 : 4.6
  • LUFact: 138.7 :  23.3
  • HeapSort: 10.0 :  14.7
  • FFT: 75.6 :  31.1
  • Crypt: 25.1 :  7.4

これを見ると、最新の V8 エンジンとは一世代前の技術で作られている AVM 上でも、同等から 5 倍程度早い結果になっています。事前コンパイル時の型推論の効果の高さが伺えます。

Falcon にはまだ他にも最適化の余地があること、 AVM も改良の余地があること (参考:2012 (2013?) 年 Flash 予報 - 言語編) などを考えると、Falcon がオープンソースとして公開される頃の ActionScript には、なんだか期待が持てそうです。

Avik は、この結果について、実行時だけでなく、事前コンパイル時にも最適化が可能な ActionScript が、JavaScript に対して優位である点を指摘しています。

個人的な意見であることを前置きした上で、ActionScript は、"明らかに JavaScript より高速" でなければだんだん使われなくなるだろう。そして、それだけの高速化の可能性はあると考える、とも述べています。

パフォーマンスだけでなく、大規模開発への対応や、開発生産性の観点から、ActionScript のライバルは、JavaScript よりは Java、場合によってはネイティブ言語の方が近いのかもしれません。

(言語の設計思想からは、Google の Dart が競合っぽく見えます。果たして Google は ECMAScript 標準の壁を破ることができるでしょうか)

ということで、AS vs JS の比較情報でした。Flash vs HTML5 ではありませんので念のため。

トラックバック(0)

トラックバックURL: http://cuaoar.jp/mt4/mt-tb.cgi/264

コメントする

2014年1月

Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
レンタルサーバー

月別 アーカイブ

Powered by Movable Type 4.261