(2024/06/16) watchOptions.ignored について追記。
0. 環境
[OS] ubuntu 16.04
[Node.js] 17.1.0
[Next.js] 12.1.6
[Prisma] 3.13.0
1. 問題
Next.jsを勉強するため、下記構成のサンプルアプリをいじってたのですが、とにかく画面ロード時間が遅くて使い物にならない。
構成
- [Next.js] -> [Prisma] -> [PlanetScale(サーバーレスDB)]
起動コマンド
# npm run dev
2. 対応
最初、当てずっぽうで、PlanetScaleへの通信が遅いのかと考え、DBをローカルに持ってきましたが変わりませんでした。
その後、Prismaの処理をコメントアウトしても重かったので、Next.jsに照準を絞りました。
原因の切り分けをしないと、ググることすらできないです。 (最初、「Prisma 遅い」とかで調べてました・・・)
最終的にポーリングの間隔を長くしたら、画面の表示は軽くなりました。
(2024/06/16,追記) ignored を追加。
自分が知らない技術を勉強する際、最初の環境設定が面倒なので、ついつい、Githubなどから公開されてるソースを落としてきて動かすことが多いです。
各パラメーターの意味を知らないまま始めるので、今回のようにハマることがあります。
3. その他 (2024/06/16,追記)
ローカル開発環境を変更後にNextJSを起動しようとしたら、やたらと重かったので調べたら、今回もポーリング絡みでした。(冒頭の環境よりもVer上げてます)
NextJSをデバッグモードで起動(ポートは80を使用)
# PORT=80 npm run dev
下記コマンドは原因特定に有用。(CPU使用率が高かったので、ポーリングのパラメータと合わせて、VMのコア数2→4に変更)
# dstat -cdngym