PHP-приложению не хватает памяти - PullRequest
3 голосов
/ 03 октября 2010

Я пишу набор классов для сканера, он сканирует стартовую страницу, тянет три ссылки на основе параметров (найденных с помощью Simple Html Dom Parser, позволяющих использовать jquery, как селекторы), сканирует эти страницы, затем переходит на страницу 2, выбирает следующие 3 страницы.Максимальное количество страниц в текущий момент - 57 раз.

Нет необходимости говорить, что я получаю:

Допустимый объем памяти 50331648 байт исчерпано сообщение об ошибке.

Есть ли какой-нибудь способ, которым я могу избежать исчерпания памяти.

Чтобы сообщить вам, после извлечения содержимого первой страницы я запускаю функцию go (), которая непрерывно вытягиваетна страницах, пока не будет достигнуто $ this-> maxpages.Я полагаю, я мог бы запустить цикл при создании экземпляров классов, но это помогло бы.

1 Ответ

5 голосов
/ 03 октября 2010

Вы можете настроить ограничение памяти:

ini_set('memory_limit', '128M');

Но я бы постарался сделать так, чтобы скрипт использовал меньше памяти.Убедитесь, что вы освобождаете данные / ссылки на все, что больше не требуется.

memory_get_usage() может быть полезно при отладке, когда накапливается использование памяти.

Кроме того, если вы не используете PHP 5.3, вы можете рассмотреть возможность обновления, поскольку сборщик мусора лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...