BT

Javaデベロッパ用のActionScript Virtual Machineを理解する

| 作者: Jon Rose フォローする 0 人のフォロワー , 翻訳者 編集部 フォローする 0 人のフォロワー 投稿日 2007年11月14日. 推定読書時間: 4 分 |
ActionScript Virtual Machine 2(AVM2)はActionScript 3.0(AS3)バイトコードをFlash Player 9ランタイム内で実行する。Action Script 3はオブジェクト指向のプログラミング言語で、Adobe FlexとAIR内でFlashベースのアプリケーションを構築する際に使用されている。AS3はECMAScript標準(source)の第3版に完全に準拠している。

Javaのデベロッパにとってバーチャルマシーンの概念は何も新しい事ではないが、AVM2には一見する価値のある機能がたくさんあるのだ。Per Olesen氏はStrong Typing、Method Closures、Just-in-Time(JIT)コンパイラとGarbage Collectionを含むAVM2の重要な機能(source)に関して議論しているブログを掲載した。

タイプ情報
AS3はストロングタイピングをサポートし、Olesen氏は下記のように論じている。
AS3に先立って全てのタイプ情報はコンパイルされる時点でコードからはがされていました。ランタイム時では全ては単なる動的にタイプされた分子であったのです。AS3ではタイプ情報をランタイムに全て持ってこれるのです。

明確にタイプされた変数を使用するとパフォーマンスが向上し、またメモリの消費量を削減できるのです。
メソッドクロージャ
AS3はメソッドクロージャをサポートする。Olesen氏は下記のように説明している。
AS3においてはメソッドクロージャがありますが、またそれは機能が内部で作られたその環境を保つ一方(定義された当時の”これ”は未だ以前の”これ”を 意味しているのです。)、機能である変数をつくることができ、またそれを受け回すことができるという事を意味しているのです。
Gary Grossman氏とEmmy Huang氏の記事'Action Script 3.0 Overview'(source)の中で、彼らはメソッドクロージャのキーとなる使用法を説明している。
イベントハンドリングはメソッドクロージャのおかげでActionScript 3.0内で簡易化され、またビルトインイベントデリゲーションを提供する。

myButton.addEventListener("click", someMethod);
ジャストインタイム(JIT)コンパイラ

JITコンパイルはバイトコードがパフォーマンスを証明するためにネイティブマシーンに変換されるテクニックである。Adobeの記事'ActionScript Virtual Machine 2(AVM2) Overview(source)は、開発に及ぼされる影響に関して詳細を記している。
実際にAVM2はJITの方法でランタイム時にコードを変換するかもしれないが、これは実行の意味には影響せずそのパフォーマンスにのみ影響する。
Olesen氏はデベロッパに影響を与えるものは考慮する必要があることを記している。
AVM2内のJITで一つ気付くことがあります。コンストラクタはJITされていませんので、もしあなたがパフォーマンス集中コードをクラス内に所有していたらそれをコンストラクタ外に持っていってください。
ガベージ・コレクション
Olesen氏はAVM2におけるガベージ・コレクションを高く評価している。
メモリマネジメントとガベージ・コレクションは別のMMgcプロジェクト内に見うけられます。これは増加、保守的なマーク・スウィープと統合されたDeferred Reference Counting(DRC)メカニズムなのである。もちろんガベージ・コレクション実装は短時間(30ミリ秒)で、最善のクライアントパフォーマンス用に調整されて いる。
更なるリソースを探している人たちはFarata SystemsのJava5とActionScript3 間の言語シンタックスを比較した詳細なブログエントリ(source)を見て欲しい。またMozilla Tamarin Project(source)をレビューするとAVM2上にて、更なる情報を得ることができる。TamarinはFlash Player 9とAIRプラットフォーム内で使用されているAVM2実装である。更にはAdobeはJavaデベロッパたちに向けたコミュニティFlexサイトを提供 している。http://flex.org/java/.

Javaデベロッパたちにとって学習プロセスを緩和するような、ActionScriptシンタックスとバーチャルマシーンアーキテクチャにおいてたくさんの類似点があるのだ。

原文はこちらです:http://www.infoq.com/news/2007/11/understanding-actionscript-vm

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT