私はWindowsストアアプリをプログラミングするのが初めてでC#
、画像メモリがどのように処理されるかを理解しようとしています. 私のアプリはとてもシンプルです:
1)Windows.UI.Xaml.Media.Imaging.BitmapImage
オブジェクトを使用してファイルからビットマップを参照し、それをオブジェクトのソースとして使用しWindows.UI.Xaml.Controls.Image
ます。私の場合、ディスク上の画像は画面に表示されているものよりも大きいため、システムによってスケーリングされています。
私の質問は、 WinRTがイメージのメモリをどのように処理するかです。ツールを使用vmmap
したところ、Mapped File セクションに画像ファイルのエントリがあることがわかりました。これは、このファイルの raw バイトが完全にメモリに読み込まれていることを意味していると思います。これは JPG であるため、これらのバイトをピクセル バイトにデコードする必要があります。私のテストから、 BitmapImage の UriSource を設定しても、0 ミリ秒かかるため実際には処理が行われず、代わりに遅延読み込みが行われているようです。
質問は次のとおりです。圧縮されていないスケーリングされていないピクセルデータの支配的なオブジェクトはどれですか? 画面に描画されるスケーリングされたピクセル データの支配的なオブジェクトは何ですか? これを簡単に表示できるツールはありますか? Java の世界では、Eclipse メモリー・アナライザー・ツールを使用しています。PerfView を使用してみましたが、結果は意味がありません。このツールはパフォーマンスを分析するためのもののようです。
更新:
BUILD カンファレンスで、チームはWindows Performance Toolkit
. PerfView について誰も言及していないので、WPT はメモリとパフォーマンスを分析するための最新かつ最高のツールだと思います。リンクは次のとおりです。