アプリケーション層のチューニング
コードレベルでのパフォーマンス改善手法を学びます。
┌─────────────────────────────────────────────────────────────┐
│ 「コードのどこが遅いの?」 │
├─────────────────────────────────────────────────────────────┤
│ │
│ APMを見たら、あるエンドポイントが遅い。 │
│ DBでもネットワークでもなさそう。アプリケーション層だ。 │
│ │
│ でも、コードのどこが遅い? │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ ・ループの中で何度もDB呼んでない?(N+1) │ │
│ │ ・同じ計算を何度もしてない?(キャッシュ) │ │
│ │ ・外部API呼び出しを直列にしてない?(非同期) │ │
│ │ ・毎回接続を張り直してない?(接続プール) │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ アプリケーション層は「自分でコントロールできる」領域 │
│ │
└─────────────────────────────────────────────────────────────┘