CODE:
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));
知道如何解决这个问题吗?我的网站托管在共享主机上,因此我无法更改内存设置。
由于
答案 0 :(得分:0)
最有可能serialize($this->_contents)
是问题所在
我通常建议不要使用序列化将内容存储在数据库或文件中。
您应该将数据拆分为_contents
并单独编写。
答案 1 :(得分:0)
它可能无法解决您的内存问题(因为您无法更改,因此无法更改),但它可能会让您获得更多控制权:
对于$this
或$this->_content
的类,您可以实现以更加内存优化的方式返回数据的Serializeable
。
如果您真的可以对内存进行优化,那么您可以透明地将其与serialize
一起使用。