Powershell 0 毫秒下载页面
Powershell download page in 0 milliseconds
我在 powershell 中的脚本有一个奇怪的问题,我想检查下载页面的平均时间。我写的脚本经常触发。但有时我的脚本 returns 结果为 0,这意味着它会在 0 毫秒内下载站点。如果我修改我的脚本以在下载时间约为 0 毫秒时将整个站点保存到文件中,它不会保存任何内容。如果我做错了什么,或者 powershell 函数不太准确,无法计算 "small" 次,我会很感兴趣。
ps。其他 "good" 结果约为 4-9 毫秒。
这是我的脚本的一部分,它响应计算下载时间:
$StartTime = Get-Date
$PageDownload = $Request.DownloadString("mypage.com")
$TimeTaken = ((Get-Date) - $StartTime).TotalMilliseconds
Get-Date
应该和系统时钟一样精确。
可能正在进行网络缓存。不幸的是,无法为 WebClient 禁用缓存,来自 what I see elsewhere. The "do it right" method is to construct your own Http request with the TcpClient class, but that's also pretty complex.
确保您未被缓存的一种简单方法是将任意值作为 GET 请求。这是一个 hack,但通常足以欺骗缓存。所以,而不是:
"http://mypage.com"
您使用:
"http://mypage.com?someUnusedValueName=$([System.Environment]::TickCount)"
我在 powershell 中的脚本有一个奇怪的问题,我想检查下载页面的平均时间。我写的脚本经常触发。但有时我的脚本 returns 结果为 0,这意味着它会在 0 毫秒内下载站点。如果我修改我的脚本以在下载时间约为 0 毫秒时将整个站点保存到文件中,它不会保存任何内容。如果我做错了什么,或者 powershell 函数不太准确,无法计算 "small" 次,我会很感兴趣。
ps。其他 "good" 结果约为 4-9 毫秒。
这是我的脚本的一部分,它响应计算下载时间:
$StartTime = Get-Date
$PageDownload = $Request.DownloadString("mypage.com")
$TimeTaken = ((Get-Date) - $StartTime).TotalMilliseconds
Get-Date
应该和系统时钟一样精确。
可能正在进行网络缓存。不幸的是,无法为 WebClient 禁用缓存,来自 what I see elsewhere. The "do it right" method is to construct your own Http request with the TcpClient class, but that's also pretty complex.
确保您未被缓存的一种简单方法是将任意值作为 GET 请求。这是一个 hack,但通常足以欺骗缓存。所以,而不是:
"http://mypage.com"
您使用:
"http://mypage.com?someUnusedValueName=$([System.Environment]::TickCount)"