← C#

LESSON / ARTICLE

パフォーマンス分析と最適化

計測に基づいてボトルネックを特定し、計算量と割り当てを改善します。

最適化は計測から始める

速そうに見えるコードが実際に速いとは限りません。まず入力規模、実行環境、期待する性能を明確にし、計測でボトルネックを特定します。

計算量

入力サイズNに対して、処理回数がどのように増えるかを考えます。二重ループは典型的にO(N²)、一度ずつ走査する処理はO(N)になることがあります。

計測の観点

  • 実行時間だけでなく、割り当て量やGC回数も確認する。
  • Releaseビルドで測定し、複数回実行してばらつきを見る。
  • ウォームアップやJITコンパイルの影響を考慮する。
  • 代表的な入力だけでなく、最大規模の入力も測る。

改善の順序

アルゴリズムとデータ構造の選択を先に見直し、その後に割り当てや低レベルの最適化を検討します。読みやすさや保守性を大きく損なう変更は、測定結果で十分な効果が確認できる場合に限ります。