tor4kichi / TsubameViewer

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

Epub読み込みの高速化 #99

Open tor4kichi opened 1 year ago

tor4kichi commented 1 year ago

モチベーション

epub内コンテンツの読み込みタイミング制御をより細かく行えるようにしたい。

課題

修正方針

tor4kichi commented 10 months ago

計測したところ一番時間が掛かっていたのは DOMContentLoaded でした。

特に WebView.InvokeScriptAsync に50%から80%の処理時間が使われています。小さなページであれば50%でそこまで影響がありませんが、大きいページになると80%で200ms のうち 160ms がスクリプト実行に使われているようです。

対策としては

tor4kichi commented 10 months ago

JS内の計測もしたところページ数計算のために実行される querySelectorAll の処理時間が支配的だった。

ただ、column-count によるページ数計算は代替処理が考えられない。内部的なページ数計算が公開されていないなど実行時計算に難がある。

tor4kichi commented 10 months ago

WinUi2のWebView2はデバッグが困難?かもしれない。Scriptをawait しても動作が帰ってこないことがしばしば発生する。

tor4kichi commented 10 months ago

js等を高速化するよりも、EPubRendererを多重配置して先行読み込みさせる方向にシフトした方が良さそう。