私は、外部ソースからのデータアクセスに本当に忙しい特定のオブジェクトを持っています。そのため、インスタンス化するにはしばらく時間がかかります。とにかく、私はそのコンストラクタ内のメソッドコールの時間を測定して、実際にダメージを受けているかどうかを確認できますか?プログラムのパフォーマンス
おかげ
私は、外部ソースからのデータアクセスに本当に忙しい特定のオブジェクトを持っています。そのため、インスタンス化するにはしばらく時間がかかります。とにかく、私はそのコンストラクタ内のメソッドコールの時間を測定して、実際にダメージを受けているかどうかを確認できますか?プログラムのパフォーマンス
おかげ
を試すことができます場合は、あなたの時間を計測するStopWatchクラスを使用することができますコンストラクタ。
例:
他の人が言うようにpublic Class1()
{
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
// Do your stuff here...
stopWatch.Stop();
// Format and display the TimeSpan value.
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
ts.Hours, ts.Minutes, ts.Seconds,
ts.Milliseconds/10);
Console.WriteLine(elapsedTime, "RunTime");
}
私はいくつかの情報
ためthis questionを参照して、クイックレビューのためstopwatchを使用したいが、あなたは、ANTS Performance Profiler
は、ストップウォッチクラスを使用します。しかし、これを使用する良い方法は、ストップウォッチを開始する前にテスト手順を1回実行し、JITされたもの、キャッシュされたものなどすべてを取得することです。その後、時間を計られたセクション内でテストを1000回実行して平均を取得します。時間は常に可変なので、平均を得るためには、ビジネス全体を何度か繰り返します。
Visual Studioでパフォーマンスツールを使用できます(正しいバージョンを使用している場合)。そうすれば、コードを書く必要がなくなり、時間のかかるメタをより正確に特定することができます。
メソッドの長さを確認する場合は、Eqatec profilerは無料です。私はその目的のために使用します。
データアクセスについて言及しているので、SQLプロファイラ(MS SQL Serverと仮定)を調べるとよいでしょう。
**リリース**モードでコンパイルしたプログラムで常にパフォーマンステストを行うようにしてください。これは一般的な知識ではないことを証するStack Overflowに関する多くの質問があります。 –
リリースモードでは通常、データアクセスの実行時間は変更されません。 –