如何用PHP创建动态测试文件?

时间:2013-11-07 07:33:39

标签: php performance apache dynamic download

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

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

正确的问题是,它运行在apache webserver上,因此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));
}

0 个答案:

没有答案