PowerShell: Measure-Command

Measure with micrometer, mark with chalk, cut with axe.

UNIX shell környezetben megszoktam, hogy parancsok futásidejét könnyű mérni a time parancs segítségével. Mostanában azonban viszonylag sokat használok PowerShellt (sokkal többet mint basht), amikor pedig szükségem lett erre a tudásra, hirtelen elszégyelltem magam, hogy még ezt sem tudom megcsinálni PowerShell alatt.

A megoldás amúgy elég egyszerű: a Measure-Command parancs segítségével könyen mérhető egy script-blokk futásideje, a válasz ráadásul struktúrált (System.TimeSpan .Net típus, hisz PowerShell alatt vagyunk), nem igényel parzolást ha számolni akarunk vele.

Végezetül egy egyszerű példa:

Measure-Command { Get-EventLog "windows powershell" }

aminek a kimenetele nálam például ez:

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 450
Ticks             : 4505313
TotalDays         : 5,21448263888889E-06
TotalHours        : 0,000125147583333333
TotalMinutes      : 0,007508855
TotalSeconds      : 0,4505313
TotalMilliseconds : 450,5313