多数の画像を処理するアプリケーションを用意します。メモリ フットプリントは、予想されるサイズの約 2 倍です。
以下に示すようにコードを整理しました。_source は、スコープ内に留まるインスタンス変数です。
int width = 924;
int height = 1116;
int length = width * height;
UInt32[] data = new UInt32[length];
_source = BitmapSource.Create( width, height, 96, 96,
PixelFormats.Pbgra32,
null, data, width * sizeof(UInt32));
_source.Freeze();
これを ANTS メモリ プロファイラーを介してフィードすると、BitmapSafeMIHandle が割り当てられ、メモリ使用量が実行されるたびにビットマップのサイズの約 2 倍になることがわかります。
私は何をしていないのですか?私はこれと一緒に暮らす必要がありますか?すべての情報をいただければ幸いです。
乾杯、ナイジェル