[FAQ CENTER トップ]
[Powershell FAQ トップへ]



【Powershell】インターネットのダウンロード速度を測定するサンプルコード



更新日:2021/05/10

インターネット速度を測定するサンプルコードです。ファイルをダウンロードしてその速度を測定します。
別途Webサーバおよびそのサーバ上のファイルを設置しておく必要があります。

以下のようなサーバを用意してください。test.dat は十分に大きい必要があります。
http://example.com/test.dat


もしこのファイルが 100Mbitでダウンロードに10秒要した場合、性能は10Mbitとなります。

Invoke-WebRequest はとても遅かったのでStart-BitsTransferに変更しました。これはWindowsサービスを活用するため高速なようです。

参考:invoke-webrequest と start-bitstransfer の性能の違い | invoke-webrequest は遅い

サンプルコード集

以下は Windows 10 環境におけるサンプルコードと実行結果です。

以下の例では600秒(10分)ごとに $url で指定したWebサーバから http でダウンロードします。他人のサーバだと負荷的に迷惑かける可能性があるため、自分の管理しているWebサーバを指定する必要があります。
結果は$kekkafile に追記されていきます。

無限ループであるため、不要になったら Ctrl + C で停止してください。実行ごとに結果ファイルに追記されるので結果が消えることはありません。

サンプルコード:


$kekkafile = "c:\temp\kekka.txt"

while ($true) {

$url = "http://example.com/test.dat"

$measureResult = Measure-Command {

#Invoke-WebRequest は遅いので使わない
Start-BitsTransfer -Source $url -destination c:\temp\test.dat
}

$output = "$(Get-Date) : $($measureResult.TotalSeconds) sec `r`n"
Add-Content -Path $kekkafile -Value $output

Write-Host $output

#10分ごとに実行
Start-Sleep -Seconds 600
}






[Powershell FAQ トップへ]
[FAQ CENTER トップ]


本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。) Copyright(c) tooljp.com 2007-2018