25

私は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 はメモリとパフォーマンスを分析するための最新かつ最高のツールだと思います。リンクは次のとおりです。

http://msdn.microsoft.com/en-us/performance/cc825801.aspx

4

1 に答える 1

1

短い答えは、おそらく「最適」です。賢いわけではありませんが、世の中にはさまざまなシステムがたくさんあります。言及されたハードウェア アクセラレーションの 1 つは、コア数、ディスプレイ メモリ、ディスク速度、モニターのビット深度と解像度などを考慮することができ、リストは延々と続きます。

于 2013-11-28T21:57:31.460 に答える