Upgrade to Pro — share decks privately, control downloads, hide ads and more …

パフォーマンス最適化

まりも
September 24, 2024

 パフォーマンス最適化

プログラマーは常にスピードを求めてしまうものですが、がむしゃらにそれを追い求めることはよい結果を出さないことが多いです。適切なパフォーマンス最適化について解説します。

まりも

September 24, 2024
Tweet

More Decks by まりも

Other Decks in Programming

Transcript

  1. 最適化についての格言 個々の操作を特定の順に実行させることは非常に興味深く奇妙な問題である。その上で全てを入力する余裕はない。どの ような計算でもプロセスの遷移のための多種多様な配置が可能であり、様々な考慮の上でそれを選択しなければならない。 基本的な目的は計算を完了するまでの時間を最小にする配置を選択することである • Ada Byron‘s notes on the

    analytical engine 1842 情報処理における罪の多くは(必ずしも達成されることのない)効率の名においてなされる。そこには盲目の愚かさも含まれ る • W.A. Wulf ボトルネックは思いもよらない場所に存在するので、ボトルネックの箇所を特定するまで性能最適化(ハック)してはいけな い • ロブ・パイク
  2. Q1 以下のどちらが効率的に動くでしょうか?(言語はC#。Javaでも大体同じ。) var str = "あいうえお" + "かきくけこ" + "さしすせそ"

    + "たちつてと" + "なにぬねの"; var builder = new StringBuilder(); builder.Append("あいうえお"); builder.Append("かきくけこ"); builder.Append("さしすせそ"); builder.Append("たちつてと"); builder.Append("なにぬねの"); var str = builder.ToString();
  3. Q1 以下のどちらが効率的に動くでしょうか?(言語はC#。Javaでも大体同じ。) var result = ""; foreach (var str in

    strArray) { result += str; } var builder = new StringBuilder(); foreach (var str in strArray) { builder.Append(str); } var result = builder.ToString();