gpt4 book ai didi

php - 取消设置类以清除内存

转载 作者:搜寻专家 更新时间:2023-10-31 20:53:55 24 4
gpt4 key购买 nike

我正在使用 twitter-async与 twitter api 交互的库。但是,即使我在各种 unset() 之后使用 gc_enable()gc_collect_cycles()

,内存限制也会不断增加

在使用垃圾收集器之前,内存使用量太大。它确实减少了很多。但并不令人满意。

我正在运行一个 for 循环来检查数据库中的新请求并处理它们。

假设,处理了一个请求,产生了大约 98 MB 的内存(这很好——考虑到我从 twitter 获取的数据量),并且没有更多的请求需要处理,那么这 98 MB 的数据将永远保留,直到 php 达到我设置的 260MB 内存限制。我已经设置了 monit,它会在脚本因内存限制而崩溃时重新启动脚本。

经过一番调查,我发现该库在某些变量中保存了有关失败调用等的数据。有没有一种方法可以销毁整个类,从而取消设置所有需要内存的变量并节省内存?我目前只是取消设置()类(class)的变量。

$twitterObj = new EpiTwitter();
// Do all the stuff ..
unset($twitterObj);

但内存使用情况仍然没有任何变化。

帮助!

最佳答案

如果任何其他对象一直引用 $twitterObj 本身或其中的一些大数据,就会发生这种情况。您可以为该类定义一个析构函数 __destruct() 以查看该对象是否实际被销毁(它在实际销毁时被调用)。

我还建议使用分析器 - 例如 xhprofxdebugZend products - 查看内存使用情况并找出内存浪费的地方。

关于php - 取消设置类以清除内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4665888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com