メイン画像

VBScript - 処理時間を計測する

VBScript - 処理時間を計測する


Timer 関数を使うことで、ある処理にかかる時間を簡単に計測できる。

Timer 関数は午前0時00分からの経過時間を秒で返す。

処理開始と処理終了のタイミングでそれぞれ Timer 関数を実行し、その差を求めれば処理時間となる。

処理時間の計測例

次のスクリプトは、ファイルを1000個開く(なければ作る)のにかかった時間を表示する。

Dim startTime
startTime = Timer

With CreateObject("Scripting.FileSystemObject")
  Dim i
  For i = 1 To 1000
    With .OpenTextFile("C:\tmp\file-" & Right("00000" & i, 5) & ".txt", 2, True)
      'TODO: ファイルに対する何らかの処理を書く
    End With
  Next
End With

Dim endTime
endTime = Timer

WScript.Echo "Processing time (sec) : " & (endTime - startTime)

スクリプトの実行結果は次のようになる。

Processing time (sec) : 2.703125

留意事項

Timer 関数は午前0時00分からの経過時間を返すので、日付をまたぐ処理は正しく時間が計算できない。

たとえば処理開始が23時50分、処理終了が0時10分だった場合、処理時間はマイナスとなる(はず)。

Timer 関数の戻り値

処理開始: 85800
処理終了: 600

したがって処理終了(600) - 処理開始(85800) = -85200 秒となる。

 

「処理終了 < 処理開始」だった場合(つまり日付が変わった場合)は、次のように計算すれば求められそう。

(いずれ確かめる)

(処理開始時の Timer 関数の値 + 処理開始~午前0時00分の秒数 + 処理終了時の Timer 関数の値) - 処理終了時の Timer 関数の値

ただこうしても2日以上またがれたら対応できない。


アカウントを作成 して、もっと沢山の記事を読みませんか?


この記事が気に入ったら ことりと さんを応援しませんか?
メッセージを添えてチップを送ることができます。


この記事にコメントをしてみませんか?


酒とアクアリウムが最近の楽しみ。

おすすめの記事