(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
    

4. 関連リンク