1

我想创建一个脚本,例如获取此输入“100MB”,创建一个恰好具有此大小的文件并强制客户端下载它。这是为了测试下载速度。

我现在拥有的脚本基本上可以工作,它以字节为单位计算实际大小并强制客户端下载。

正确知道的问题是,它在 apache 网络服务器上运行,因此 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