scrapbox.Project.pagesはキャッシュして使
一旦生成したpagesを使い回す設計にしないといけない
例
code:js
// 生成する振り返りページの日付リスト
const dates = eachDayOfInterval(interval).filter((date) => {
const title = reviewTitle(date);
const page = scrapbox.Project.pages.find((page) => page.title === title);
return !page || !page.exists;
});
2023-03-10時点でeachDayOfInterval(interval).length === 129だったため、129回もクソデカ配列の生成と破棄を繰り返すことになっていた
メモリが死んでしまう!
電力も食う
2022-11-03時点では配列の長さが1だったため、気づかなかったのだろう
日が経過するに連れてfilterする回数が増え、だんだんUIブロックが気になるようになってきた
これにより、いつもscrapboxを立ち上げるたびに約10秒もUI threadがblockingされていた
こっちはページ内の行数が少なければ大きな問題にならない