PowerShellだとMeasure-Commandというコマンドでコマンドの実行にどれくらいの時間がかかったかが計測できるんだよ。
Get-ChiledItemの実行時間を計測してみると、「TotalMilliseconds : 9.1263」となってる。
ミリセカンドは、1/1000秒なので、一瞬で終わってるってわかる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
PS C:\Users\yuta\Documents> Measure-Command {Get-ChildItem} Days : 0 Hours : 0 Minutes : 0 Seconds : 0 Milliseconds : 9 Ticks : 91263 TotalDays : 1.05628472222222E-07 TotalHours : 2.53508333333333E-06 TotalMinutes : 0.000152105 TotalSeconds : 0.0091263 TotalMilliseconds : 9.1263 |
イベントログの取得項目数を変えて計測してみる。
さすがに10万取得すると、2秒以上かかっているみたい。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#計測するスクリプトブロックを変数に格納 PS C:\Users\yuta\Documents> $sb = {Get-EventLog System -Newest $_} #同じスクリプトブロックの条件を変更して計測する #イベントログを降順で100コ PS C:\Users\yuta\Documents> Measure-Command -Expression $sb -InputObject 100 Days : 0 Hours : 0 Minutes : 0 Seconds : 0 Milliseconds : 22 Ticks : 229406 TotalDays : 2.65516203703704E-07 TotalHours : 6.37238888888889E-06 TotalMinutes : 0.000382343333333333 TotalSeconds : 0.0229406 TotalMilliseconds : 22.9406 #イベントログを降順で100000コ PS C:\Users\yuta\Documents> Measure-Command -Expression $sb -InputObject 100000 Days : 0 Hours : 0 Minutes : 0 Seconds : 2 Milliseconds : 231 Ticks : 22314796 TotalDays : 2.58273101851852E-05 TotalHours : 0.000619855444444444 TotalMinutes : 0.0371913266666667 TotalSeconds : 2.2314796 TotalMilliseconds : 2231.4796 |