Your SlideShare is downloading. ×
0
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

誰にでもできるパフォーマンスチューニング

1,344

Published on

Windows Phoneでパフォーマンスをチューニングする簡単な方法

Windows Phoneでパフォーマンスをチューニングする簡単な方法

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,344
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 誰にでもできるパフォーマンス・チューニング
  • 2. Twitter: @kabakiyoブログ:遅咲きのエンジニアHokuriku.NETの代表
  • 3. 告知3/10 Hokuriku.NET Vol9• Windows Touch 入門から応用まで マイクロソフト 田中達彦さん• OSSで作成するチーム開発環境 石坂 忠広さん• WindowsPhoneなら40日で30個のアプリが作れる!! 西村 誠さん• 復習シリーズ④「暗号化概説」 ピアズ・マネジメント(株)中林秀仁・筏井哲治 http://atnd.org/events/24756
  • 4. My アプリ IT勉強会カレンダー Lost Friends
  • 5. My ライブラリ• Amazon Product Advertising API Signed Requests for Windows Phone http://amazonproductadvlib.codeplex.com/• Application Undeployment http://undeployment.codeplex.com/• エミュレータにPeopleハブを表示する方法 http://d.hatena.ne.jp/kabakiyo/20111006/1317876504• Windows Phone 7(Mango)でFlashlight、QRコード、 AR(Augmented Reality)のサンプル http://d.hatena.ne.jp/kabakiyo/20110711/1310384889
  • 6. 本題
  • 7. パフォーマンスを改善する目的ユーザーは当たり前に動くことを期待しているパフォーマンスの悪いアプリケーションはその期待を裏切っている期待を裏切られたユーザーはストレスを感じる他のアプリに浮気する浮気したユーザーはなかなか戻ってこないユーザーにとって心地よいアプリを作り、ユーザーの心をガッチリ掴む!
  • 8. パフォーマンス・チューニングはプログラマーの腕の見せ所!
  • 9. 改善すべき個所• 起動時間 起動が遅いとすぐに使いたいのに使えないイライ ラが溜まって精神衛生上よくない• 応答時間 押しても反応が遅いと押してないんじゃないかと 勘違いして何度も押してしまい精神衛生上よくな い
  • 10. パフォーマンスに関するサイト• Windows Phone 用アプリケーションのパ フォーマンスに関する考慮事項(MSDN) http://msdn.microsoft.com/ja- jp/library/ff967560(v=vs.92).aspx• 24 TWENTY FOUR: 24のパフォーマンス アップ Tips(MS 高橋忍さん) http://blogs.msdn.com/b/shintak/archive/2011/12/25/102 50861.aspx
  • 11. パフォーマンスに関する項目• JPG と PNG のどちらのイメージ形式を選択するか• イメージと XAML のどちらを選択するか• イメージ サイズの制限• メディアのビルド アクションを "コンテンツ" に設定する• Visibility と Opacity のどちらを選択するか• ProgressBarの代わりにPerformanceProgressBarを使用する• WebClient の代わりに HttpWebRequest を使用する• スプラッシュ スクリーンを使用する• アプリケーション アセンブリのサイズを最小にする• アプリケーションを小さいアセンブリに分割する• コンストラクターおよび Loaded イベントのコードを最小にする• 分離ストレージの使用を監視する• UI スレッドのブロックを避ける• 位置情報サービス
  • 12. パフォーマンスに関する項目• プッシュ通知• ネットワーク情報• ラジオ• UI スレッド• 合成スレッド• アニメーションとスレッド• バックグラウンド スレッドと非同期プログラミング• メモリ使用状況を監視する• 再描画領域表示を有効にする• キャッシュ視覚化を有効にする• フィル レート上昇の要因
  • 13. 厳選された3つの項目1. Resource or コンテンツ2. ProgressBar → PerformanceProgressBar3. WebClient → GZipWebClient
  • 14. スペック(Samsung Omnia 7)• Processor Qualcomm QSD8250 1GHz• RAM 512MB• ストレージ 8G
  • 15. Resource or コンテンツ
  • 16. 説明 Resource or コンテンツ • 画像や動画などのリソースファイルをビルドす るときの扱い • プロパティのビルドアクションの設定 • Resource、コンテンツ、なし
  • 17. 違い Resource or コンテンツ • Resource zap アセンブリ アセンブリに埋め込む • コンテンツ zap アセンブ アセンブリには埋め込まず、 リ パッケージに含む • なし zap アセンブ ビルドになにも含めない リ
  • 18. Resourceのデメリット Resource or コンテンツ • 起動時にアセンブリを読み込むときに、 まだ利用しないすべてのリソースが読み 込まれる • 起動時間が遅くなる Resource コンテンツ zap zap アセンブリ リソース アセンブリ リソース
  • 19. ベンチマーク Resource or コンテンツ 115MBの画像を含むプロジェクトをビルドした結果 Resource コンテンツ
  • 20. 結論 Resource or コンテンツ アセンブリに含めなければならない事情が ない限り、ビルドコンテンツは常にコンテ ンツで。
  • 21. ProgressBar →PerformanceProgressBar
  • 22. 説明 ProgressBar → PerformanceProgressBar • プログラムがなんらかの処理中であることをお 知らせするためのProgressBar • しかしそんなProgressBarに罠が…
  • 23. ProgressBarの問題点 ProgressBar → PerformanceProgressBar • 標準で搭載されているProgressBarの IndeterminateモードはUIスレッドでアニメー ションを行っている • 他の処理をUIスレッドで行うとProgressBarの表 示に影響を与えてしまう • それを解決するために作られたのが PerformanceProgressBar • PerformanceProgressBarは合成スレッドでアニ メーションを動かすようにした
  • 24. 検証内容 ProgressBar → PerformanceProgressBar以下の3つのタイプのプログレスバーに対し、UIスレッドに負荷をかけたときの動作を検証。1. SystemTrayの ProgressBar2. コントロールのProgressBar3. 改善されたPerformanceProgressBar
  • 25. ベンチマーク ProgressBar → PerformanceProgressBar 3つのプログレスバーの表示を試すた めに、ビューに3つのプログレスバー を配置し、計算ボタンを押すとUIス レッドで重い処理が働くようにしまし た。 コントロールのProgressBarだけ止ま る!
  • 26. 結論 ProgressBar → PerformanceProgressBar • プログレスバーとは進捗状況を表示するため のものであるにもかかわらず、SDKに含まれ ているProgressBarはその役割を果たしてい ない (´・ω・`) • PerformanceProgressBarを積極的に使って いこう! ヾ(o´ω`o)ノ • Windows Phone Toolkitに入っています http://silverlight.codeplex.com/
  • 27. WebClient → GZipWebClient
  • 28. 説明 WebClient → GZipWebClient • GZipWebClientはgzip圧縮に対応したWebClient • GZipWebClient はWebClientから派生してるので、シグ ネチャはWebClientと一緒 • 送信するデータ・受信するデータを圧縮できるのでデー タサイズが小さくなり処理時間が短くなることを期待で きる WebClient client = new SharpGIS.GZipWebClient(); client.DownloadStringCompleted += client_DownloadStringCompleted; client.DownloadStringAsync(uri);
  • 29. ベンチマーク WebClient → GZipWebClienthttp://d.hatena.ne.jp/kabakiyo/rssの RSSを取得する処理受信データ Header(bytes) Body(bytes) 経過時間(ms)WebClient 485 30.808 0.548GZipWebClient 509 6,997 0.310Bodyは約75%、経過時間は約45%の改善
  • 30. ベンチマーク WebClient → GZipWebClientPlease ship your next Windows Phone app with GZip:speed requests 50-80%(Jeff Wilcox) http://www.jeff.wilcox.name/2012/01/windows-phone-gzip-support-by-morten/
  • 31. 結論 WebClient → GZipWebClient • 圧縮率の高いHTML、XML、JSONのようなテキ ストデータでGZipWebClient は大きく力を発揮 する • 一方、画像や動画などのバイナリデータで GZipWebClientを利用してもほとんど効果は見 られない
  • 32. ボツになった項目• jpg or png jpgの方が速いけど10%ぐらい• BitmapCache 時と場合によってパフォーマンスに大きな影響を与える Opacityを設定するならBitmapCacheを設定したほうがよい• スプラッシュスクリーンをはずす 気分的なもの アプリケーションのロードがものすごく短ければはずしてもよい と思う
  • 33. 一般的な対策• 起動時間を短くする – アセンブリを小さくする – コンストラクタ、Loaded、OnNavigatedToで重い処 理をしない(重い処理はバックグラウンドで)• 応答時間を短くする – UIスレッドで重い処理を行わない(重い処理はバッ クグラウンドで)
  • 34. 最後に…
  • 35. 浮気されないアプリを作ろう! by kabakiyo
  • 36. 参考Windows Phone 用アプリケーションのパフォーマンスに関する考慮事項http://msdn.microsoft.com/ja-jp/library/ff967560(v=vs.92).aspxThe high performance ProgressBar for Windows Phone(“PerformanceProgressBar”) http://www.jeff.wilcox.name/2010/08/performanceprogressbar/Please ship your next Windows Phone app with GZip: speed requests 50-80%http://www.jeff.wilcox.name/2012/01/windows-phone-gzip-support-by-morten/【WP for ITPro】Windows Phone エミュレーター のネットワークパケットをキャプチャするhttp://blogs.technet.com/b/junichia/archive/2011/12/01/3468284.aspx【書籍】コードの世界 まつもとゆきひろ著
  • 37. ご清聴ありがとうございました

×