ここではVB.NETのStopwatchクラスを使って、処理時間を計測する方法について紹介します。

Stopwatchクラスとは

System.Diagnostics.Stopwatch クラスは、VB.NETで経過時間を正確に計測するために使用できるクラスです。

Stopwatchのメソッド
・Start() — 計測を開始する
・Stop() — 計測を停止する
・Restart() — 経過時間を0にリセットして計測を開始する
・Reset() — 経過時間を0にリセットする

Stopwatchのプロパティ
・Elapsed — 経過時間をTimeSpanで取得する
・ElapsedMilliseconds — 経過時間をミリ秒で取得する
・ElapsedTicks — 経過時間をTicksで取得する
・IsRunning — 現在計測中かどうかを取得する


基本的な使い方

以下は System.Diagnostics.Stopwatch クラスの基本的な使い方です。経過時間を ElapsedMilliseconds プロパティを使って ms(ミリ秒)で出力しています。

Imports System.Diagnostics

Module Program

    Private sw As New Stopwatch()

    Sub Main(args As String())

        ' 計測開始
        sw.Start()

        ' 計測したい処理実行
        Threading.Thread.Sleep(2000)

        ' 計測停止
        sw.Stop()

        Console.WriteLine("経過時間: " & sw.ElapsedMilliseconds & " ms")

    End Sub
End Module


経過時間: 2008 ms



経過時間を分・秒・ミリ秒で出力する

以下は経過時間を Elapsed プロパティで取得して、TimeSpan型の変数に代入した後、分・秒・ミリ秒に編集して出力しています。

    Sub Main(args As String())

        ' 計測開始
        sw.Start()

        ' 計測したい処理実行
        Threading.Thread.Sleep(2000)

        ' 計測停止
        sw.Stop()

        ' 経過時間の取得
        Dim elapsed As TimeSpan = sw.Elapsed

        ' 経過時間を分・秒・ミリ秒に編集する
        Dim result As String = "経過時間: " &
            elapsed.Minutes & "分 " &
            elapsed.Seconds & "秒 " &
            elapsed.Milliseconds & "ミリ秒"

        Console.WriteLine(result)

    End Sub


経過時間: 0分 2秒 12ミリ秒



以上、VB.NETのStopwatchクラスを使って、処理時間を計測する方法について解説しました。