広告あり

【C#】とにかく簡単に処理時間を計測する方法

C#

コーディングをしていると、「この処理ってどれくらい時間がかかってるの?」と気になってとにかく処理時間を簡単に計測してみたくなることがあります。そんな時に、特別なライブラリを使わずに初心者でも簡単に計測できる方法について解説していきます。

[スポンサーリンク]

Stopwatchクラスを使用した時間計測

C#で時間を計測する方法はいくつかありますが、今回はとりあえずミリ秒単位で簡単に時間を計測したいのでStopwatchクラスを使用します。使い方は以下の通りです。

Stopwatch sw = new Stopwatch();

sw.Start();
// ここに計測したい処理を書く
sw.Stop();

// コンソールに出力
Console.WriteLine($"処理時間: {sw.ElapsedMilliseconds}ミリ秒");

Stopwatchクラスは名前の通り、ストップウォッチのように使用できるクラスで、Startで計測を開始してStopで一時停止します。Elapsed(=経過)の名が付いたElapsedMillisecondsで現在のミリ秒単位の経過時間が取得できます。ただし、このまま上記の一番下の行に「sw.Start();」を追記して実行すると最初にStartしたところからの継続した経過時間として加算されていくので注意してください。(実際のストップウォッチと同じですね。)

for文などの繰り返し処理の途中で使用する場合など、再度計測を始める場合はRestartを使用して、以下のように処理することで毎回経過時間を0にリセットして再スタートさせることができます。(初回実行時もRestartを使用して大丈夫です。)

Stopwatch sw = new Stopwatch();

for (int i = 0; i < 100; i++)
{
    sw.Restart();
    // ここに計測したい処理を書く
    sw.Stop();
    
    // コンソールに出力
    Console.WriteLine($"処理時間({i}回目): {sw.ElapsedMilliseconds}ミリ秒");
}

また、処理の途中までの時間が知りたい場合などはStart/RestartからStopの間にElapsedMillisecondsを入れて出力すると確認できます。(「// ここに計測したい処理を書く」の位置に何個いれても問題ありません。)

まとめ

今回は、C#でとにかく簡単に処理時間を計測する方法をご紹介させていただきました。大抵の場合、処理時間の計測は開発中のみ必要な処理だと思いますので、#if DEBUG~#endifなどを使用してデバッグ時のみ実行するか、削除しておくのも忘れないでくださいね。デバッグ時のみ実行する方法は以下の記事でも解説していますのでチェックしてみてください。


\ おすすめ書籍 /



[スポンサーリンク]

\ おすすめ書籍 /



この記事を書いた人
だんご丸

鉄鋼系SE歴 10年
金融系SE歴  6年
現在は音楽出版社のSE

●保有資格
初級システムアドミニストレータ
(現:ITパスポート)
基本情報技術者
応用情報技術者
情報セキュリティスペシャリスト
(現:情報処理安全確保支援士)
ネットワークスペシャリスト
情報セキュリティマネジメント
AWS認定クラウドプラクティショナー
AWS認定ソリューションアーキテクト - アソシエイト

だんご丸をフォローする
C#
[スポンサーリンク]
[スポンサーリンク]
だんご丸をフォローする
[スポンサーリンク]
タイトルとURLをコピーしました