C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でメソッドの実行時間を計測する方法【Stopwatchクラスの使い方】

.NETでメソッドの実行時間を計測したい場合は、System.Diagnostics名前空間に含まれるStopwatchクラスを使うのが最も簡単で確実な方法です。高精度タイマーに基づいているため、ミリ秒単位の細かい計測にも対応できます。

Stopwatchクラスの基本的な使い方

まず、StartNewメソッドを呼び出してストップウォッチを開始します。

Stopwatch s = Stopwatch.StartNew();

計測対象の処理を実行した後、ElapsedMillisecondsプロパティを参照することで、経過時間をミリ秒単位で取得できます。

s.ElapsedMilliseconds

サンプルコード

以下は、displayメソッドの実行時間を計測し、その結果を5回コンソールに出力する完全なコード例です。

using System;
using System.IO;
using System.Diagnostics;

public class Demo {
    public static void Main(string[] args) {
        Stopwatch s = Stopwatch.StartNew();
        display();

        for (int index = 0; index < 5; index++) {
            Console.WriteLine("Time taken: " + s.ElapsedMilliseconds + "ms");
        }
        s.Stop();
    }
    public static void display() {
        Console.WriteLine("Demo function!");
    }
}

実行結果

Demo function!
Time taken: 15ms
Time taken: 16ms
Time taken: 16ms
Time taken: 16ms
Time taken: 16ms

このように、Stopwatch.StartNew()を呼び出してからElapsedMillisecondsを参照するまでの経過時間がミリ秒で表示されます。Stop()を呼び出すまで計測は継続されるため、ループ内で何度値を参照しても問題ありません。

補足:より詳細な計測を行いたい場合

ミリ秒よりも高い精度が必要なケースでは、以下のプロパティやメソッドを活用すると便利です。

  • ElapsedTicks:タイマーの刻み数(tick)で経過時間を取得でき、より高精度な計測が可能
  • ElapsedTimeSpan型として経過時間を取得できるため、書式指定して表示しやすい
  • Restart():計測を停止してすぐに再スタートできるため、複数の処理を連続して計測する際に有用

パフォーマンスチューニングやボトルネックの特定など、処理速度の分析が必要な場面では、Stopwatchクラスを活用することで手軽かつ正確に実行時間を把握できます。

  1. Androidで日付と時刻を変更する方法|時計アプリ・設定アプリの2つの手順を解説

    Androidで日付と時刻を変更する方法Androidスマートフォンの時刻やタイムゾーンを変更したい場合、手順はとてもシンプルです。サマータイムへの切り替えや海外旅行時の時差対応など、さまざまな場面で役立ちます。機種によってメニューの名称が多少異なりますが、Samsung、Google Pixel、LGなど、どのメーカーの端末でも基本的な流れは共通しています。この記事では、Androidで日付と時刻を変更する主な2つの方法を詳しく解説します。ポイント「時計」アプリを開き、「設定」から新しい時刻を選択する「設定」>「システム」>「日付と時刻」から変更する方法1:時計アプリから変更する手順Andr

  2. Pythonでコードの実行時間を計測する方法を解説

    Pythonでプログラムの実行時間を測定したい場合、timeモジュールの関数を利用できます。また、より正確なベンチマークを行いたい場合には、Python公式ドキュメントでも推奨されているtimeitモジュールを使用するのが良いでしょう。 timeモジュールを使った基本的な計測方法 処理の開始前と終了後に時刻を取得し、その差分から経過時間を算出するのが基本的な方法です。 例 import time t0 = time.clock() print(Hello) t1 = time.clock() - t0 print(Time elapsed: , t1 - t0) # 経過したCPU秒数(