tor4kichi / TsubameViewer

漫画・小説ビューア(Windows10 & 11/XboxOne/Xbox Series X & S)
GNU General Public License v3.0
14 stars 1 forks source link

低速ストレージかつ非キャッシュ時の圧縮ファイルを開く動作の高速化 #49

Open tor4kichi opened 2 years ago

tor4kichi commented 2 years ago

ArchiveImageCollectionContextが常に全件列挙を必要とする実装が動作高速化のボトルネック。

現状、全件列挙が必要となってる要件としては

の2つがある。さらに実用上としては、

tor4kichi commented 2 years ago

遅くなってる原因は各Archive実装の実装上、IArchive.Entiresプロパティにアクセスした時点で全件取得処理が入るからと見受けられます。(内部的にLoadEntriesで全部取っている)

回避するには、IReaderをReaderFactory等で作成して、イテレーション動作が最小限になるよう自前で管理すれば、ほとんどのケースで開くまでの体感時間の改善はできそうです。

ただし、ツバメビューアの都合上、フォルダ単位の移動のためにフォルダ構造を把握しなければならないため、少なくとも初回は全件走査が必要です。あるいはフォルダ単位の移動がリクエストされた時点で全件取得を行うようなUIも組み合わせた工夫が必要となりそうです。