実行時間を計測する

実行時間を計測するための Measure-Command というコマンドが存在しますが、使い勝手が良くない気がします。

計測したいコードの前後で現在時間を計測して、その差分時間を計算するという昔ながらの方法が一番いいと思います。

# 現在時間を取得する.
$dtm0 = Get-Date

# ループ回数.
$loop = 5

# ウェイトミリ秒.
$wait_msec = 1000

for ( $n = 0; $n -lt $loop; $n++ )
{
    $str = Get-Date -Format "yyyy/MM/dd HH:mm:ss"
    Write-Host ( $str )
    Start-Sleep -Millisecond $wait_msec
}

# ふたたび現在時間を取得する.
$dtm1 = Get-Date

# 時間差分を計算する、差分は TimeSpan 型.
$tsp = $dtm1 - $dtm0

# 時間差分をコンソールに表示する.
$str_msg = "{0}msec" -f ( $tsp.TotalMilliSeconds )
Write-Host( $str_msg )

# コンソールに型を表示する.
$tsp.GetType()

下記に実行結果を示します。

2022/06/27 21:55:02
2022/06/27 21:55:03
2022/06/27 21:55:04
2022/06/27 21:55:05
2022/06/27 21:55:06
5058.8019msec

IsPublic IsSerial Name                                     BaseType                                       
-------- -------- ----                                     --------                                       
True     True     TimeSpan                                 System.ValueType