Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带PowerShell时间跨度的算法_Powershell_Timespan - Fatal编程技术网

带PowerShell时间跨度的算法

带PowerShell时间跨度的算法,powershell,timespan,Powershell,Timespan,PowerShell时间跨度非常适合快速显示持续时间,如: $starttime = $(get-date) { do some processing here } write-host "Duration: $((new-timespan $starttime $(get-date)).tostring())" 但是,如果我在该时间段内进行了$loopcount处理迭代,我如何将持续时间除以$loopcount,以获得每次迭代的平均持续时间?在这里,您可以根据需要进行调整 $StartTim

PowerShell时间跨度非常适合快速显示持续时间,如:

$starttime = $(get-date)
{ do some processing here }
write-host "Duration: $((new-timespan $starttime $(get-date)).tostring())"

但是,如果我在该时间段内进行了
$loopcount
处理迭代,我如何将持续时间除以
$loopcount
,以获得每次迭代的平均持续时间?

在这里,您可以根据需要进行调整

$StartTime = Get-Date
{ <#do some processing here#> }

$TimeSpan = New-TimeSpan $StartTime (Get-Date)
$AverageTimeSpan = New-TimeSpan -Seconds ($TimeSpan.TotalSeconds / $LoopCount)
$StartTime=获取日期
{  }
$TimeSpan=newtimespan$StartTime(获取日期)
$AverageTimeSpan=新的TimeSpan-秒($TimeSpan.TotalSeconds/$LoopCount)

秒是进行此操作的最佳单位。

如果执行此操作(如果不需要脚本块的输出),则更好的方法可能是:

1..$loopcount | ForEach-Object {
    Measure-Command {
        # do some processing here
    }
} | Measure-Object -Average TotalSeconds

好的,我试着将其作为注释添加,但是代码的格式仅限于注释中,所以我会将其作为另一个答案

我也有类似的需求,但我在一个集合上循环,需要测量集合中每个元素上的2个不同操作,并希望总结每个操作所花费的总时间

以下是我所做的:

$opATot = New-TimeSpan
$opBTot = New-TimeSpan
$myData | %{
   $opA = Measure-Command -Expression { do-op-a $_ }
   $opB = Measure-Command -Expression { do-op-b $_ }
   $opATot = $opATot.add( $opA )
   $opBTot = $opBTot.add( $opB )
}
"Op A took " + $opATot
"Op B took " + $opBTot

很好的回答——我希望我能奖励两个答案。你知道,这毕竟不是很好。它并不是真正测量每个迭代,只是估计。答案很好——基于个人审美,我给了这个答案比另一个答案稍微好一点。你可以通过计算迭代次数,然后在最后执行平均计算,将总秒数除以循环数。