BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース MetroスタイルのXAMLアプリのパフォーマンスチップス

MetroスタイルのXAMLアプリのパフォーマンスチップス

原文(投稿日:2012/05/30)へのリンク

Microsoftは、“Performance Tips For Metro Style XAML Apps(MetroスタイルXAMLアプリのパフォーマンスチップス)”という名前のドキュメントを公開した。これには、応答性について、安定した滑らかなアニメーション、起動時間の改善、リソース消費量の削減など、いくつかの提案が含まれている。概要は以下の通り。

UI関連 -

  • バックグラウンドスレッドを使って、UIスレッドの応答を維持する– asyncとawaitでプログラムする
  • レイアウトパスで無効なレイアウトを避ける
  • 複数のファイルを処理するときには、Windows.Storage.BulkAccess APIとWindows.Storage.StorageFolder.GetFilesAsync APIを使う
  • WinRT APIを呼び出すとき、特にホットパスのコードのときにはInteropのオーバーヘッドを意識する

アニメーション -

  • 可能な限り、アニメーションは、(UIスレッドから)独立させる
  • 過剰な描画を最小化する– たとえば、完全に隠れているエレメントは無視する、複合エレメントの代わりにレイヤオブジェクトを使用する
  • 変更/アニメーションされないエレメントの場合、キャンバスをキャッシュする
  • Animating Web Viewを避ける

起動時間 -

  • スプラッシュ画面、読み込み中ページを使って、裏でデータを読み込んでいることの認識性を向上させる
  • 起動時に必要なXAMLを最小限にする
  • エレメント数を最適化する
  • 大きく違わない場合、アセンブリを組み合わせる – ひとつのアセンブリを読み込むことは一般的に、2つの小さなものを読み込むよりも時間が短い

アプリのプロセスライフタイム -

  • 終了の前のサスペンド – アプリをサスペンドするとき、終了する前にそのデータを保存するために5秒まで待つ
  • シリアライズとデシリアライズはデータが変更されたときだけにする
  • 停止するときに可能な限り多くのメモリと、ファイルとデバイスのハンドルを解放する。それでも、復元を迅速に行えるように設計する
  • ブラシをResourceDictionaryエレメントとして、ページ間で再利用する – これでキャッシュを向上させることができる

データの表示 -

  • ビューポートの近くのオブジェクトだけを作成するといったUIの仮想化や、巨大なデータセットで、必要な時に少量の変更分だけを読み込むようにデータの仮想化を使用する
  • アイテムテンプレートセレクタを使用する

メディア -

  • 可能であれば、全画面で再生する
  • 組み込みビデオに重ねない
  • MediaElementのソースを後から設定する
  • 可能であれば、ビデオ/画像の解像度をデバイスの解像度に合わせる
  • Windows 8では、ビデオにはH.264を優先的なフォーマットにして、オーディオにはACCとMP3を推奨する。ゲームなど短いオーディオ効果ではWAVを使用する

同紙には、Microsoftによるコードサンプルによる詳細説明も含まれている。同紙でカバーされていないDirectXとXAMLの相互運用という記事も提供されている。

この記事に星をつける

おすすめ度
スタイル

BT