你能测量 While ($ie.Busy -eq $true)
Can you measure While ($ie.Busy -eq $true)
我在调查这个问题时找不到确切的答案,但很好奇是否可以测量 while ($ie.Busy -eq $true)
的时间。
我有一个与 Internet Explorer 交互并执行任务的脚本,我认为从数据收集的角度记录加载时间或类似内容会很好。
这可以使用 while ($ie.Busy -eq $true)
还是有其他方法来衡量?
您要捕获的是 $startLoadTime
和 $endLoadTime
并找出两者之间的区别(循环中的 Start-Sleep
是可选的,但会阻止 Powershell 进程使用过多 CPU):
$startLoadTime = [DateTime]::Now
while( $ie.Busy ){
Start-Sleep -Milliseconds 200
}
$endLoadTime = [DateTime]::Now
$loadTimeElapsed = $endLoadTime - $startLoadTime
返回的$loadTimeElapsed
变量是一个System.TimeSpan
对象,可以让您轻松查看和处理经过的时间。
请注意,在等待 $ie.Busy
变为 $false
时,您不想让循环 运行 未绑定(会比您占用更多 CPU 时间会想要),这就是为什么我把 Start-Sleep
放在那里的原因。如果您需要小于 "within 200ms".
的分辨率,您可以根据需要调整毫秒数
我在调查这个问题时找不到确切的答案,但很好奇是否可以测量 while ($ie.Busy -eq $true)
的时间。
我有一个与 Internet Explorer 交互并执行任务的脚本,我认为从数据收集的角度记录加载时间或类似内容会很好。
这可以使用 while ($ie.Busy -eq $true)
还是有其他方法来衡量?
您要捕获的是 $startLoadTime
和 $endLoadTime
并找出两者之间的区别(循环中的 Start-Sleep
是可选的,但会阻止 Powershell 进程使用过多 CPU):
$startLoadTime = [DateTime]::Now
while( $ie.Busy ){
Start-Sleep -Milliseconds 200
}
$endLoadTime = [DateTime]::Now
$loadTimeElapsed = $endLoadTime - $startLoadTime
返回的$loadTimeElapsed
变量是一个System.TimeSpan
对象,可以让您轻松查看和处理经过的时间。
请注意,在等待 $ie.Busy
变为 $false
时,您不想让循环 运行 未绑定(会比您占用更多 CPU 时间会想要),这就是为什么我把 Start-Sleep
放在那里的原因。如果您需要小于 "within 200ms".