データベースにクエリを実行し、返されたデータを 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操作はメモリ操作よりも遅いと思うので、最初の方法が良いです。唯一の問題はメモリ制限かもしれません。