我在PowerShell中的脚本有一个奇怪的问题,我想检查下载页面的平均时间。我写剧本频繁发作的剧本。但有时我的脚本会返回结果0,这意味着它会在0毫秒内下载网站。如果我修改了我的脚本,以便在下载时间大约为0毫秒时将整个站点保存到文件中,则不会保存任何内容。如果我做错了什么我会很有趣,或者说PowerShell功能不太精确,不能算这么“小”。
PS。其他“好”的结果大概是4-9毫秒。
以下是我的脚本的一部分,它响应计算下载时间:
$StartTime = Get-Date
$PageDownload = $Request.DownloadString("mypage.com")
$TimeTaken = ((Get-Date) - $StartTime).TotalMilliseconds
答案 0 :(得分:3)
Get-Date
应该与系统时钟一样精确。
可能会有网络缓存。遗憾的是,从what I see elsewhere开始,无法禁用WebClient的缓存。 "做对了"方法是使用TcpClient类构造自己的Http请求,但这也是pretty complex。
确保您不被缓存的一种简单方法是将任意值作为GET请求。它是一个黑客攻击,但通常足以欺骗缓存。所以,而不是:
"http://mypage.com"
您使用:
"http://mypage.com?someUnusedValueName=$([System.Environment]::TickCount)"