2012 (2013?) 年 Flash 予報 - 開発環境編

Adobe MAX 20111 から Falsh 関連情報をまとめるシリーズの最終回です。 (前回:機能編 その 2前々回:機能編 その 1前々々回:言語編

今回は、開発作業の効率化関連で提供が予定されているものを紹介します。例によって、以下の項目が 2012 年中に公開されるかどうかは保証の限りではありません。また、永遠に出てこないかもしれません。その点ご了解の上お読み下さい。

Telemetry

パフォーマンスチューニングの際に、「いま、何が原因でフレームレートが落ちたんだろう?」 って苦労している人に朗報です。 (たぶん)

Flash Player に新しく搭載される Telemetry は、コンテンツ再生中の詳細な状況を Flash Player が報告してくれる機能です。フーレムごと、Flash Player の具体的なパフォーマンス情報が通知されるという話なので、今までブラックボックスだった Flash Player 内部の動きも、少し見通しが良くなりそうです。

ActionScript にも Telemetry を利用する API が提供され、SWF コンテンツからのパフォーマンス情報を Telemetry の出力として書き出せる、という話がありました。これを利用して Flex フレームワークも Telemetry に対応中、だそうです。

Telemetry が収集したデータは、AMF 形式で TCP ソケットから送出する仕組みになっています。とすると、データを収集するツールの自作もできそうですね。ネットワーク経由ということなので、デバイス上の Flash Player からの Telemetry 情報の取得も、実現は容易でしょう。

実演されたデモでは、各フレームごとの、

  • FPS
  • スクリプトの実行にかかった時間
  • 描画処理にかかった時間
  • ネットワーク関連の処理にかかった時間
  • 使用中のメモリ
  • 呼び出された Flash Player の機能のリスト

などを表示する、試作品のモニターツールが紹介されていました。

Telemetry の特徴の 1 つに、利用時の負荷が非常に少ないことがあります。全体の 1 % 以下とのお話でした。 なので、Telemetry は、ユーザ体験を妨げることも無く、実際のパフォーマンスほぼそのままを捕らえてくれそうです。

Monocle

Monocle は、スニークピークで紹介されたツールで、Telemetry からの情報を表示します。独立したツールっぽいので Flash Pro からも Flash Builder からも利用できる (?) ことでしょう。

Monocle の画面の左側は棒グラフ (実はタイムライン) になっていて、フレームごとに、

  1. スクリプト実行
  2. 描画処理
  3. Flsah Player の負荷 (ネットワークや画像のデコードなど)

が、色分けされて積み上げ表示されます。

棒が高い程、そのフレームで処理時間がかかったという意味なので、一目でフレームレートを達成できなかったフレームを発見できます。さらに、各フレームで、3 種類の処理に、それぞれどのくらいの時間がかかったのかも読み取れます。

Monocle の画面の右側には、ツリー形式のリストが表示されます。このリストには、タイムラインからフレーム (棒) を選択すると、選択したフレームで実行された処理が、実行順に表示されます。それぞれの処理には、実行回数と経過時間も表示されます。

処理によっては、ドリルダウンして、更に 1 段階下の処理を表示できます。例えば、enterframe の処理中に実行された関数、その関数の中で実行された関数、というように順々に掘り下げることで、フレーム内で実行されていた関数の情報は一通り把握できるようです。描画関連でも、更新処理の詳細としてテクスチャーが更新されて GPU にアップロードされた、というレベルまで動作確認できていました。

これらの情報の中でも、描画処理に関する情報は Telemetry からのものと思われるのですが、ユーザコードの関数名まで表示されたのは、Telemetry の負荷が 1 % ということを考えると、やや出来過ぎな気がします。もしかすると Monocle は、他のサンプリング技術も併用できるのかもしれません。

(ちなみに、Flash Player のコード、Flex SDK のコード、ユーザコードはそれぞれ色分けされていました。既に Telemetry 対応した Flex SDK が存在するってことですね)

タイムラインから複数のフレームを選択するというデモもあり、その場合、リスト領域には、選択したフレーム全体の処理を合計したものが表示されていました。これができると、ある期間にどの処理で一番時間がかかったのかも簡単に見つけられそうです。

普通にコンテンツを再生するだけでここまで詳細な情報が取れるので、Monocle は手軽なプロファイラーとして大活躍しそうな気がします。デモを担当した Deepa は、どこをチューニングすれば良いのか、そのとっかかりの発見に適したツールだ、とコメントしていました。

ActionScript で並列処理ができるようになった頃には、さらにありがたいツールになりそうです。

モバイルシミュレーション

新しいデバイス環境のシミュレーションツールが計画されているようです。

一般的なデバイスの機能は一通り確認できるようにしたい、ということで、マルチタッチ、画面の回転、加速度計などに加えて CameraRoll や CameraUI もシミュレーションできるようです。

ずっと AIR アプリケーションを手軽にシミュレーションできる環境が無い状態だったので、今度こそ AIR への対応が期待されるところです。が、ADL の置き換えだとすると、こんどは SWF コンテンツからの利用が難しくなりそうです。とすると、Device Central に代わる、全く新しいツールということになるのでしょうか。果たして?

ともあれ、デスクトップ環境でできる作業が増えそうなのは嬉しい限りです。

Spoon SDK

Spoon は、Flex を真のオープンソースプロジェクトにすることを目的とした、コミュニティ主導の活動です。従来の Flex SDK はオープンコードではあったが、オープンソースではなかった、という考えが、Spoon 発足のベースとなっています。

Spoon チームは基本的にボランティアで構成されます。主要な目的は、

  • ユーザからのバグ報告や要望にできるだけ早く対応すること
  • 実際のアプリ開発経験を活かしたフィードバックを提供すること (どのバグが本当に重要なのかとか、どのように修正されるのが望ましいのかとか)
  • コミュニティが実際に Flex SDK に貢献できる環境を作ること

などです。そのために Spoon SDK と呼ばれる独自の SDK をメンテします。

ただし、Spoon SDK は、Flex SDK とは別の SDK を提供するものではなく、最終的に Flex SDK にフィードバックするための実証という位置づけです。このように、別バージョンとしてフォークしないのでスプーン、という名前が付いたようです。

これまでは、Flex チームの開発者がオープンソース活動のメンバーも兼ねるという体制でした。開発の合間を見ての対応となるため、開発の負荷が高くなると、バグを登録してもなかなか反応が得られない状況が続いていました。

バグ対応といっても、あるバグの修正が他のモジュールの動作に影響を与えたり、相反するバグ修正のどちらかを選択しなければならなかったり、といったケースも想定されます。こういった調整作業も含めると、オープンソースプロジェクトは相応の体制無しでは効果的に運用できません。

そのため、Spoon プロジェクトでは、個々のバグを検証する人だけでなく、全体の調整をする人、テストケースを作る人 (Asylum プロジェクトという別プロジェクトがあります) など、様々な役割と作業プロセスを定義しています。Spoon では、腕に自慢のボランティアを募集中だそうです。自分の経験やスキルを行かせそうだという人、是非コンタクトしてみてください。

今後、Spoon がコミュニティとアドビの仲介役として機能するようになれば、よりコミュニティの意向が反映された SDK が提供されるようになると期待されます。

Flex ULTRA

Flex の次のバージョンは ULTRA と呼ばれています。来年公開の予定で、これまでの記事で紹介してきた、次世代コンパイラの Falcon、改良版ランタイムの Tamarin redux & Halfmoon、軽量お手軽プロファイル機能の Telemetry など全てに対応したバージョンになる予定だそうです。 (希望込み)

Flex SDK ULTRA には、新しい Spark コンポーネント、

  • Tree
  • Tooltip
  • DataChooser, DateField
  • ViewStack, TabNavigator, Accordion
  • Alert

が追加されるようです。DataGrid の機能拡張も予定されていて、カラムのグループ化や行や列のロック機能などが追加されるようです。

Flash Builder ULTRA も予定されています。当然 Falcon に対応したバージョンになるそうです。スニークピークで紹介された、リバースデバッグの機能 (プログラムの停止した地点からコードをステップバックできる) も付くと良いのですが。

などなど、4 回に渡って MAX で収集した来年実現される (かもしれない) Flash の新機能情報をまとめてみました。参考になったでしょうか?

 

トラックバック(0)

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

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