次のようなコードがあります。
public void SomeMethodThatLoadsUserData()
{
Stopwatch sw = new Stopwatch();
sw.Start();
Parallel.Invoke(Method1, Method2, .... , Method12);
sw.Stop();
var t = sw.ElapsedMilliseconds;
}
これらの各メソッドは、データベースでクエリを呼び出すことになります。[デバッグ] ボタンをクリックして、このコードを初めて実行すると、約 1200 ミリ秒かかります。そして、約 10 回再起動ボタンを押すと、平均して約 220 ミリ秒の結果が得られます。
この大きなギャップは、A ) アプリケーションが初めて何らかのコンパイルを実行する必要があり、実稼働環境での実際の結果がラップトップで取得している 220 ミリ秒の平均に近づくという事実によるものですか、または B ) データがSQLサーバーにキャッシュされ、再起動するとデータがキャッシュから読み取られるため、本番環境でのメソッドの実際のパフォーマンスは、実際には最初の実行で見られる1200ミリ秒に近くなります.
これらの数値の読み方についてご提案いただきありがとうございます。