Some notes on how to handle output from scripts.
I did some comparing on how much extra time is added on executiontime just by using write-output to display information to users.
While running script below these are the results:
With write-output uncommented : 11,8s
With write-progress uncommented: 3,9s
With no output: 0,9s
$global:varNumb = 1
function foo {
#write-host "entering function 'foo'"
write-verbose "entering function 'foo'"
$global:varNumb++
#write-host "completed function 'foo' $varnumb"
write-verbose "completed function 'foo' $global:varnumb"
}
$startTime = get-date
write-host "script started at $startime"
$cycles = 1000
$i = 1
1..$cycles | foreach {
#write-progress -Activity "Processing..." -CurrentOperation "Working on $i"
#write-output "Testar $i"
$i++
foo
}
$endtime = get-date
write-host "Done in $(($endtime-$starttime).totalseconds) seconds"
$global:varNumb
Its amazing how much time is added just by adding write-output.
But as seen in this example write-progress is prefererred, if anything.
I suggest using write-verbose instead of write-output and changing $verbosepreference = Continue when needed. This is by default SilentlyContinue
No comments:
Post a Comment