0

コード:

if (flock($fp, LOCK_EX))
{
    fwrite($fp, serialize($this->_contents));
    flock($fp, LOCK_UN);
}

エラー:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 17805286 bytes).....

エラーライン:

fwrite($fp, serialize($this->_contents));

問題を解決する方法はありますか?私のサイトは共有ホスティングでホストされているため、メモリ設定を変更する機会はありません。

ありがとう

4

2 に答える 2

0

それはあなたの記憶の問題を解決しないかもしれません(あなたはそれを変えることができないのであなたはそれを変えることができないので)、しかしそれはあなたがより多くの制御を可能にするかもしれません:

$thisまたはのクラスの場合、よりメモリ最適化された方法でデータを返す$this->_contentを実装できます。Serializeable

本当にメモリを最適化できるのであれば、。で透過的に使用できますserialize

于 2012-11-07T13:35:14.110 に答える
0

ほとんどserialize($this->_contents)の場合、問題です。
私は通常、シリアライゼーションを使用してデータベースやファイルに保存しないことを提案する傾向があります。

内部のデータを分割して、_contents別々に書き込む必要があります。

于 2012-11-07T13:23:39.900 に答える