PHP增加写入页面速度

时间:2010-04-15 22:10:29

标签: php xml optimization

我目前正在编写xml并完成以下操作:

header ("content-type: text/xml");
header ("content-length: ".strlen($xml));

$ xml是要写出的xml。我接近大约1.8兆的文本(我通过firebug发现),看起来写作比脚本运行花费的时间更多..有没有办法提高写入速度?

提前谢谢。

3 个答案:

答案 0 :(得分:2)

这实际上取决于你如何编写数据。如果您正在使用DOM,请考虑使用XMLWriter。它更快,更简化。

如果您正在自行创建XML输出,请确保不会不必要地附加字符串。例如:

echo "<tag>" . $data . "</tag>"; // this is slower
echo '<tag>', $data, '</tag>';   // this is faster

逗号运算符不会创建新字符串。另外要考虑的是,单引号字符串比双引号略快。没有可变替换来扫描。通常情况下,差异很小,但在紧密循环中你绝对可以看到它。

根据您的数据源以及构建XML的方式,您的处理可能是瓶颈。尝试使用xdebug进行分析,并查看瓶颈实际存在的位置。

答案 1 :(得分:0)

谷歌的结果似乎表明,回声对大字符串的性能很差。一种解决方案是将字符串断开以回显成块;

function echobig($string, $bufferSize = 8192)
{
    $splitString = str_split($string, $bufferSize);

    foreach($splitString as $chunk)
        echo $chunk;
}

请注意,我没有测试过这段代码;我在php docs找到了它。对于有类似问题的其他人,请阅读this blog post,将回声字符串拆分为块。

答案 2 :(得分:0)

尝试将XML转储到临时文件然后使用readfile将数据发送给用户可能是值得的。