やりたいこと
時間がかかってそうな処理があるときに、その処理にどれくらいの時間がかかっているかを調べたい。
やり方
Stopwatchクラスを使う。
サンプルコード
測りたい処理を挟んで、Stopwatchをスタート~ストップして、時間を測る。
using System.Diagnostics;
using System.Threading;
namespace ConsoleApp5
{
class Program
{
static void Main(string[] args)
{
// ストップウォッチを作成
Stopwatch sw = new Stopwatch();
// ストップウォッチをスタート
sw.Restart();
// 測りたい処理
Thread.Sleep(5000);
// ストップウォッチを止める
sw.Stop();
// 経過時間をsw.Elapsed や sw.ElapsedMilliseconds で取得
Debug.WriteLine(" 経過時間:" + sw.ElapsedMilliseconds + " ms");
}
}
}
メモ
個人的に、スタートするときはRestart()を使う。
Start() → Stop() → Start() → Stop()とすると、一回目の時間をそのまま引き継いでしまうので、それに気づかないと間違った計測結果を採ってしまうので。
参考
Stopwatch Class
https://docs.microsoft.com/ja-jp/dotnet/api/system.diagnostics.stopwatch?view=netframework-4.8