【发布时间】:2011-06-07 15:27:17
【问题描述】:
我正在使用twitter-async 库与 twitter api 进行交互。但是,即使我在各种 unset() 之后使用 gc_enable() 和 gc_collect_cycles(),内存限制也会不断增加
在使用垃圾收集器之前,内存使用过多。它肯定减少了很多。但并不令人满意。
我正在运行一个 for 循环来检查数据库中的新请求并对其进行处理。
假设处理了一个请求,生成了大约 98 MB 的内存(这很好——考虑到我从 twitter 获取的数据量),并且没有更多的请求需要处理,那么这 98 MB数据将永远保留,直到 php 达到我设置的 260MB 内存限制。如果由于内存限制而崩溃,我已经设置了重新启动脚本的监视器。
经过一番调查,我发现该库在某些变量中保存了有关失败调用等的数据。有没有一种方法可以销毁整个类来取消设置所有需要内存的变量并节省内存?我目前只是取消设置()类的变量。
$twitterObj = new EpiTwitter();
// Do all the stuff ..
unset($twitterObj);
但内存使用量仍然没有任何变化。
救命!
【问题讨论】:
标签: php