PowerShellで処理時間を計測する

toc目次

PowerShellで処理時間の計測

PowerShellでは、Measure-Commandコマンドレットを使用することで、処理時間を計測する事ができます。

Measure-Command {
  # 時間を計測したい処理を記載
}

Measure-Commandの使用例

以下、Start-Sleep 3(3秒間スリープ)の処理時間を計測するサンプルです。

Measure-Command {
    Start-Sleep 3
}
PS > Sample.ps1

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 3
Milliseconds      : 9
Ticks             : 30098108
TotalDays         : 3.48357731481481E-05
TotalHours        : 0.000836058555555556
TotalMinutes      : 0.0501635133333333
TotalSeconds      : 3.0098108
TotalMilliseconds : 3009.8108

Measure-Commandの出力はTimeSpan構造体で、プロパティ値の内容は以下のとおりです。

内容
Days 時間間隔の日要素
Hours 時間間隔の時間要素
Minutes 時間間隔の分要素
Seconds 時間間隔の秒要素
Milliseconds 時間間隔のミリ秒要素
Ticks 時間間隔を100ナノ秒単位で表した値
TotalDays 時間間隔を日単位で表した値
TotalHours 時間間隔を時間単位で表した値
TotalMinutes 時間間隔を分単位で表した値
TotalSeconds 時間間隔を秒単位で表した値
TotalMilliseconds 時間間隔をミリ秒単位で表した値

処理時間を秒単位で取得する場合は、Measure-Commandの出力を変数に代入してTotalSecondsを取得します。

$timeSpan = Measure-Command {
    Start-Sleep 3
}

Write-Host "処理時間:$($timeSpan.TotalSeconds)秒"
PS > Sample2.ps1

処理時間:3.0098108秒