【发布时间】:2013-03-25 03:18:30
【问题描述】:
我正在查询数据库,然后使用 file_put_contents() 将返回的数据存储到 XML 文件中。我想知道调用此函数的哪种方式更好。注意 $data 是一个大数组,在这种情况下变量 $rss 可以包含一个大字符串。
一开始我是这样实现的:
foreach($data as $item)
{
$rss .= '<title>'.getTitle($item['id']).'</title>';
$rss .= '<data>'.getData($item['id']).'</data>.';
file_put_contents($this->fileRss, $rss);
unset($rss);
}
然后我把上面改成:
foreach($data as $item)
{
$rss .= '<title>'.getTitle($item['id']).'</title>';
$rss .= '<data>'.getData($item['id']).'</data>.';
}
file_put_contents($this->fileRss, $rss);
哪种方式更好?制作一个很大的变量 $rss 然后保存它还是每次都保存相当小的变量?我不确定,但我认为 IO 操作比内存操作慢,所以第一种方法更好。唯一的问题可能是内存限制。
【问题讨论】:
-
你试过计时吗?这可能会给你一些指示。
-
我该怎么做?我已经使用...手表进行了测试。我认为两者都是在同一时间执行的。
-
你的意思是每次都使用
.=吗?还是要在每次循环迭代时重新初始化$rss? -
在示例中。 1 有必要在每次迭代时重新初始化 $rss 或使用 $rss = 'text'; (无点)在第一行。我不知道这是否有什么不同。在示例 nr 2 中。我可以使用 .= 每次创建大字符串然后保存它。
标签: php performance io