La cmdlet Measure-Command permet de déterminer rapidement le temps d’exécution d’un script PowerShell.
Exemple :
La commande suivante liste simplement les processus en cours dont le nom commence par un “W”
1 2 3 4 5 6 7 8 9 10 11 12 13 |
PS C:\cmd\ps> Get-Process | Where-Object {$_.Name -Like 'W*'} Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 89 8 1144 4308 672 0 wininit 207 10 2136 8800 76 1 winlogon 723 57 28484 48760 0,91 6632 1 WinStore.App 157 12 2496 1216 1724 0 winwfpmonitor 1577 69 57208 92768 56,23 11340 1 WINWORD 102 8 1556 5792 2200 0 wlanext 382 22 14340 22044 2108 0 WmiPrvSE 405 21 14156 16704 6876 0 WmiPrvSE 350 16 8472 16620 8256 0 WUDFHost |
Si vous désirez voir le temps d’exécution de cette commande, il suffit de la passer en paramètre de la cmdlet Measure-Command.
1 2 3 4 5 6 |
PS C:\cmd\ps> Measure-Command { Get-Process | Where-Object {$_.Name -Like 'W*'} } | Select-Object -Property TotalMillise conds TotalMilliseconds ----------------- 7,7026 |
L’utilité de cette fonction peu ne pas être évidente au premier regard mais lorsque l’on traite des requêtes manipulant plusieurs milliers d’objets, cela peu faire toute la différence. Dans certains cas, l’optimisation d’un script permet de diviser son temps d’exécution par 10 voir par 100.