【C#】処理時間を計測するストップウォッチの使い方

C#

C#には、処理の時間を簡単に計測できるSystem.Diagnostics.Stopwatchクラスがあります。この記事では、その使い方をサンプルコードとともに説明します。

サンプルコード

このサンプルコードを実行すると、指定した処理(この例では3秒間の待機)にかかった時間をミリ秒単位で計測し、結果をコンソールに表示します。

using System;
using System.Diagnostics;
using System.Threading;

class Program
{
    static void Main(string[] args)
    {
        // ストップウォッチのインスタンスを作成
        Stopwatch stopwatch = new Stopwatch();

        // ストップウォッチを開始
        stopwatch.Start();

        // 計測したい処理 (ここでは3秒間待機する例)
        Thread.Sleep(3000); // 3000ミリ秒 = 3秒

        // ストップウォッチを停止
        stopwatch.Stop();

        // 経過時間を取得して表示
        Console.WriteLine($"処理にかかった時間: {stopwatch.ElapsedMilliseconds}ミリ秒");

        // 処理が完了するのを待つための入力待ち
        Console.ReadLine();
    }
}

実行結果の例

処理にかかった時間: 3008ミリ秒

時間の単位を変更したい場合

Stopwatch.Elapsedプロパティは、TimeSpanオブジェクトを返します。これにより、経過時間を日、時間、分、秒、ミリ秒など、さまざまな形式で取得することができます。以下に、経過時間の表示方法を複数の例として示します。

秒単位で表示

経過時間を秒単位で表示するには、Elapsed.TotalSecondsプロパティを使用します。このプロパティは、経過時間を秒単位で、小数点以下も含めて返します。

Console.WriteLine($"処理にかかった時間: {stopwatch.Elapsed.TotalSeconds}秒");

ミリ秒単位で表示

経過時間をミリ秒単位で表示するには、先ほど示したElapsedMillisecondsプロパティを使用します。これは、経過時間をミリ秒単位の整数で返します。

Console.WriteLine($"処理にかかった時間: {stopwatch.ElapsedMilliseconds}ミリ秒");

分単位で表示

経過時間を分単位で表示するには、Elapsed.TotalMinutesプロパティを使用します。これは、経過時間を分単位で、小数点以下も含めて返します。

Console.WriteLine($"処理にかかった時間: {stopwatch.Elapsed.TotalMinutes}分");

時間と分と秒の組み合わせで表示

経過時間をより詳細に表示するには、Elapsedプロパティから時間、分、秒を個別に取得し、組み合わせて表示することができます。

Console.WriteLine($"処理にかかった時間: {stopwatch.Elapsed.Hours}時間 {stopwatch.Elapsed.Minutes}分 {stopwatch.Elapsed.Seconds}秒");
タイトルとURLをコピーしました