有时候用php在处理比较大的数据的时候,会报内存不够的错误。想到实例化可能会占据内存,unset掉之后并没有改善多少,那么php中实例化的对象会在什么时候被释放?
2 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
这种时候你就应该考虑你处理数据的算法和机制了,你说实例化会占用内存,那你是不是在这个大数据里经常实例化对象呢,既然是大数据,你还在里面一直实例化,好像就不太合适了。另外,unset销毁的只是该对象,并没有销毁该对象在内存中的占用,这里引用一句话:当给一个变量赋值(或者相类似的操作),内存会开辟一个空间存储,这时候会产生两个重要的概念,一个是“内存的地址”,一个是“地址内的内容”。unset打断了变量与地址间的联系。而php会自动检测内存地址里的数据是否完全没有跟其它变量产生联系,在确定没有的情况下会回收内存。所以要回收内存,那就要把所有的联系打断。参考文章unset函数内存分配和销毁问题探秘phpunset对象实例
添加回答
举报
0/150
提交
取消