Flash コンテンツパフォーマンス最適化 (ネットワーク編)

記事の元ネタとなっている Optimizing Performance for the Flash Platform が更新されました。前のバージョンより 15 ページほど増えています。とりあえず、CPU 編の 「Timer と ENTER_FRAME イベント」 を更新しておきましたのでよろしければご覧ください。その他には主に AIR 関連のトピックが追加されています。

では、Optimizing Performance for the Flash Platform から最後の Tips です。

まず、Flash Player 10.1 から追加された新しいネットワーク関連の機能 2 点です。

サーキュラーバッファリング (circular buffering)

  • ビデオをプログレッシブダウンロードで再生する場合、デスクトップ環境では (Flash Player 10.1 含む) ロードした FLV ファイル全体をローカルディスクにキャッシュする。Flash Player はキャッシュから再生を行う
  • デバイス上では、
    1. FLV のキャッシュに必要な領域が不足
    2. 20 MB 以上のディスク領域 (もし無ければ 4 MB 以上のメモリ) が利用できる - この値はコンパイル時に設定可能
    の条件でサーキュラーバッファリングが行わる
  • サーキュラーバッファリングでは、キャッシュファイルが一杯になると、ファイルの先頭から再利用される
  • ファイル全体がキャッシュされないと再生できないファイル (MP4 の一部のファイル等) を保存する領域が足りないと Flash Player はそのファイルをダウンロードしない

スマートシーク (smart seeking)

  • Flash Media Server 3.5.3 から Flash Player 10.1 にストリーミングを行うとスマートシークが使える
  • 従来の動作は、シークが行われると、バッファされたデータは全て捨てられる
  • スマートシークでは、シーク先がバッファされている範囲内だった場合、再利用できるデータはそのまま使われる。そのため、すぐに再生が開始され、ストリーミングに必要な帯域も削減することができる

あとは、Tips が 3 つあります。

SWF の分割

  • SWF を複数に分割することで読み込みから起動までを高速化できる
  • その際、アセットやロジックが重複してダウンロードされないように注意する
  • RSL (Runtime Shared Library) を使って共通部分をダウンロードし、それを複数の SWF から getDefinition() メソッドを使って利用することが可能 - クラス定義、フォント、ビットマップ、サウンドなどが RSL 化できる

入出力エラー

  • ネットワーク接続が不安定な場合に備えて IOErrorEvent.IO_ERROR イベントのリスナーを定義することが望ましい
  • その際、エラーの発生をユーザーに知らせ、リトライができるようにすることを推奨

Flash リモーティング

  • XML を使った通信はデータ量が多くなり、処理時間もかかるため、少量のデータを送受信するのに適している
  • 大量のデータを送受信する場合は、AMF の使用をするべき
  • AMF を使用する場合、サーバ側には ZendAMF, FluorineFx, WebORB, BlazeDS などのモジュールが必要
  • Flex SDK を使うと、AMF が簡単に利用できる (Flash Professional でも Flex フレームワークの SWC を利用可能)

トラックバック(0)

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

コメント(2)

P2Pライブソリューション「シェアキャスト」を手がけています。10.1は大いに期待できそうですね。

高野さん、こんにちは。

コメントありがとうございます。
シェアキャストにも Flash Player 版が!! という日が来ますように。

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