拡張Scrapbox入力補完のWeb Workerを使いまわしたい
Web Workerを無駄に作りまくってメモリが悲鳴をあげているので、必要最低限だけ作って使い回すことで、メモリを消費を抑えたい
現状の問題点
一つのタブでweb workerを大量に立ち上げてしまう
拡張Scrapbox入力補完では、一つのUserScriptごとに独立してWeb WorkerをCPUのthread数ぶん立ち上げている
すると、使用している入力補完の数 * CPUのthread数だけWeb Workerが立ち上がってしまう
e.g. takker.iconは emoji-completion/external-completion/external-completion-for-personalの3つを使っているので、タブ一つ当たり$ 3 \times 8 = 24もWeb Workerが常時起動してしまう
↓一つのタブで使われているWebWorker一覧
https://gyazo.com/8d31513b72ff554a099573f9da869cde
えげつない量起動していて草も生えないtakker.icon
/icons/hiee.iconyosider.icon
更にScrapbox.ioのタブは複数開いているので、その分だけWeb Workerが増える!
https://gyazo.com/a0498a647d09d0f87613f1139abb4a36
1タブ当たり500~700MBはやばい
仕事をしない無駄なWebWorkerがたくさんいる
複数の入力補完が同時に起動しないように設定している
そのため、常に最大でもCPU数分のworkersしか動いていない。他のworkersはその間何もしていないのだ
どうするか
複数の拡張Scrapbox入力補完で同じWeb Workerを使い回せばいい
課題
入力補完ごとに検索したい補完ソースの型が異なる
詳細は気が向いたときか誰かが質問したときに書きますtakker.icon
2021-02-14 21:09:14 今回これを解決する方法を思いついたので、早速コードを書いてテストしようと思うtakker.icon
複数の補完ソースを切り替えて検索できるUserScript