2011-01-24 9 views
1

私は、外部ソースからのデータアクセスに本当に忙しい特定のオブジェクトを持っています。そのため、インスタンス化するにはしばらく時間がかかります。とにかく、私はそのコンストラクタ内のメソッドコールの時間を測定して、実際にダメージを受けているかどうかを確認できますか?プログラムのパフォーマンス

おかげ

+0

**リリース**モードでコンパイルしたプログラムで常にパフォーマンステストを行うようにしてください。これは一般的な知識ではないことを証するStack Overflowに関する多くの質問があります。 –

+0

リリースモードでは通常、データアクセスの実行時間は変更されません。 –

答えて

2

を試すことができます場合は、あなたの時間を計測する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"); 
} 
0

は、ストップウォッチクラスを使用します。しかし、これを使用する良い方法は、ストップウォッチを開始する前にテスト手順を1回実行し、JITされたもの、キャッシュされたものなどすべてを取得することです。その後、時間を計られたセクション内でテストを1000回実行して平均を取得します。時間は常に可変なので、平均を得るためには、ビジネス全体を何度か繰り返します。

0

Visual Studioでパフォーマンスツールを使用できます(正しいバージョンを使用している場合)。そうすれば、コードを書く必要がなくなり、時間のかかるメタをより正確に特定することができます。

0

メソッドの長さを確認する場合は、Eqatec profilerは無料です。私はその目的のために使用します。

データアクセスについて言及しているので、SQLプロファイラ(MS SQL Serverと仮定)を調べるとよいでしょう。

関連する問題