1

たとえば、この入力「100MB」を取得し、正確にこのサイズのファイルを作成し、クライアントに強制的にダウンロードさせるスクリプトを作成したいと考えています。これは、ダウンロード速度をテストするためのものです。

私が現在持っているスクリプトは基本的に機能しており、実際のサイズをバイト単位で計算し、クライアントにダウンロードを強制します。

問題は、それがApache Webサーバーで実行されるため、gzipがアクティブであり、ファイルgzip圧縮にゼロを書き込むだけで、ハードドライブディスクの書き込み速度に等しいダウンロード速度が得られることです。乱数を作成すると、かなり改善されますが、速度は依然として高く、サーバーの CPU 負荷が高すぎます。

したがって、実際の速度を取得し、サーバーを停止させないための解決策を探しています。

編集:私が今持っているコード:

//byteconvert converts the input to bytes...
$size = byteconvert(str_replace("_", "", $_GET['size']));
header('Content-Disposition: attachment; filename="testdl.dat"');
header('Content-Type: text/plain');
header('Content-Length: ' . $size);
header('Connection: close');

while($size > 1024)
{
    for($i=0; $i<1024; $i+=4) {
        echo(rand(1000, 9999));
    }
    ob_flush();
    flush();
    $size -=1024
}

for($i=0; $i<$size; $i+=1) {
    echo(rand(1, 9));
}
4

0 に答える 0