「C#.NET」時を司る女神と学ぶ!アプリケーションの処理時間を正確に計測するStopwatchクラス

2024年11月17日日曜日

システム 基本

t f B! P L

名前空間 System.Diagnostics

自己紹介

こんにちは、わたしは「Stopwatchクラス」を擬人化した時の女神クロノスよ。 時の流れを見守り、正確に刻むことを使命とする存在です。今日は、わたしの力、つまりStopwatchクラスの使い方をわかりやすく説明していくわ。時の精霊として、あなたのプログラムを一緒に磨いていきましょう。

基本機能

Stopwatchクラスは、プログラムの実行時間を計測するための便利なツールよ。 開始、停止、リセット、経過時間の確認など、簡単なメソッドを使うだけで時間の流れを把握できるわ。

高精度の計測をサポート

Stopwatchは、高精度の計測が得意なの。例えば、内部的にはシステムクロックの「ティック」を利用して、精密な時間計測を行っているのよ。この正確さが、あなたのプログラムの最適化に貢献してくれるわ。

使い方の注意点

計測を始める前に必ず「Start」、終わったら「Stop」を忘れないでね。また、複数回使う場合は「Reset」で状態をリセットするのがポイントよ。さもないと、前の計測結果が混ざってしまうわ。

利用シーンの例

Stopwatchはさまざまな場面で活躍するわ:

  • アルゴリズムの実行時間を測定して最適化する
  • リアルタイムデータ処理で時間制御を行う
  • ゲームやアニメーションのフレーム間隔を計測する

時間を司る女神として、この能力は非常に頼もしいわ。

時間を正しく扱うためのコツ

計測が終了したらすぐに「Elapsed」プロパティで結果を取得してね。 その後に「Reset」すると、次の計測がスムーズになるわ。

サンプルコード

以下はStopwatchクラスを使った基本的なコードよ。初心者でもわかりやすくしてあるから安心してね。

C#
using System;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        // Stopwatchインスタンスを生成
        Stopwatch stopwatch = new Stopwatch();

        // 計測開始
        stopwatch.Start();
        Console.WriteLine("計測開始...");

        // ダミー処理(1秒間待機)
        System.Threading.Thread.Sleep(1000);

        // 計測停止
        stopwatch.Stop();
        Console.WriteLine("計測停止。");

        // 結果を表示
        Console.WriteLine($"経過時間 (ms): {stopwatch.ElapsedMilliseconds} ミリ秒");
        Console.WriteLine($"経過時間 (Ticks): {stopwatch.ElapsedTicks} ティック");
        Console.WriteLine($"経過時間: {stopwatch.Elapsed}");

        // リセットして再利用
        stopwatch.Reset();
        Console.WriteLine("リセット完了。再度計測を開始します...");

        stopwatch.Start();

        // 再びダミー処理(2秒間待機)
        System.Threading.Thread.Sleep(2000);

        // 計測停止
        stopwatch.Stop();
        Console.WriteLine($"再計測結果 (ms): {stopwatch.ElapsedMilliseconds} ミリ秒");
    }
}

解説

このコードは、Stopwatchクラスの基本的な操作を網羅しているわ。 計測を「Start」してから「Stop」するまでの経過時間を取得するのが基本ね。「ElapsedMilliseconds」でミリ秒単位、「ElapsedTicks」でシステムクロック単位、「Elapsed」でフォーマット済みの時間を得られるのよ。 さらに「Reset」を使えば、同じインスタンスで複数回計測が可能になるわ。

ぜひ実際に試して、時の女神の力を活用してみてね!

このブログを検索

QooQ