Я использую библиотеку twitter-async для взаимодействия с twitter api. Однако ограничение памяти продолжает увеличиваться, даже если я использую gc_enable()
и gc_collect_cycles()
после различных unset() sОтключение класса для очистки памяти
Перед использованием сборщика мусора использование памяти было слишком большим. Это, безусловно, уменьшилось. Но не удовлетворительно.
Я запускаю цикл for, который проверяет новые запросы в базе данных и обрабатывает их.
Предположим, что запрос обрабатывается, генерируя около 98 МБ (это нормально - учитывая объем данных, которые я извлекаю из твиттера) памяти, и больше нет запросов для обработки, тогда этот 98 МБ данных будет оставаться навсегда, пока php не достигнет предела памяти 260 МБ, который у меня установлен. Я уже установил monit, который перезапускает скрипт, если он сбой из-за ограничения памяти.
После некоторого изучения я обнаружил, что библиотека сохраняет данные о неудачных вызовах и т. Д. В некоторых переменных. Есть ли способ, с помощью которого я могу уничтожить весь класс, который отключит все переменные памяти и сохранит память? В настоящее время я просто не задал() переменную для класса.
$twitterObj = new EpiTwitter();
// Do all the stuff ..
unset($twitterObj);
Но по-прежнему нет никаких изменений в использовании памяти.
Помощь!
Я пробую это. Скоро опубликует обновление. Но у меня есть сильное чувство, что это сработает. Если бы подумал об этом, но сам не пробовал.:) – kapeels