2019年07月04日
川俣晶の縁側ソフトウェア技術雑記 total 3493 count

StorageFileのコレクションを持つUWPがメモリを食いすぎる問題

Written By: 川俣 晶連絡先

問題 §

 StorageFileのコレクションを持つUWPがメモリを食いすぎる。

 特にローカルのファイルを処理するとメモリ消費が大きい。

 12万ファイルぐらいを処理するプログラムが12GB RAMのマシンでメモリ不足になって動作しないことがある。

原因 §

 ファイル一覧を取得すると、StorageFileの配列で返ってくるにもかかわらず、StorageFileの多用はメモリを大幅に圧迫するらしい。

解決 §

 ファイル一覧を取得したらPathプロパティでフルパスの文字列だけ取得してStorageFileオブジェクトは即座に破棄する。文字列からはいつでもStorageFile.GetFileFromPathAsyncでStorageFileオブジェクトを再取得できる。コレクションに保管するのはStorageFileオブジェクトではなくパスの文字列だけにしておく。

 (これだけの修正で劇的にメモリ消費量を減らせた)