問題 §
StorageFileのコレクションを持つUWPがメモリを食いすぎる。
特にローカルのファイルを処理するとメモリ消費が大きい。
12万ファイルぐらいを処理するプログラムが12GB RAMのマシンでメモリ不足になって動作しないことがある。
原因 §
ファイル一覧を取得すると、StorageFileの配列で返ってくるにもかかわらず、StorageFileの多用はメモリを大幅に圧迫するらしい。
解決 §
ファイル一覧を取得したらPathプロパティでフルパスの文字列だけ取得してStorageFileオブジェクトは即座に破棄する。文字列からはいつでもStorageFile.GetFileFromPathAsyncでStorageFileオブジェクトを再取得できる。コレクションに保管するのはStorageFileオブジェクトではなくパスの文字列だけにしておく。
(これだけの修正で劇的にメモリ消費量を減らせた)