PHP возможная утечка памяти - PullRequest
0 голосов
/ 17 июня 2010

У меня есть скрипт, который просматривает базу данных для преобразования изображений с помощью gd & imagick.

Я сбрасываю или заменяю все переменные и объекты между каждым циклом.

Для каждого цикла get_memory_usage (1) показывает одновременный объем памяти, используемый этим сценарием. Что ожидается.

Но когда я запускаю "top", столбец% MEM сообщает, что этот сценарий (с тем же PID) увеличивается на несколько процентов для каждого цикла.

Я уничтожаю все изображения, когда я закончу с ними, и когда я запускаю get_defined_vars (); установлены только стандартные глобальные переменные и несколько переменных.

Почему «верхний»% использования памяти отличается от того, что сообщает PHP?

После 10 циклов PHP занимает 20% восприятия системной памяти.

Я запускаю php 5.2.6 на Debian 5

Ответы [ 2 ]

1 голос
/ 17 июня 2010

Передаете ли вы первый параметр memory_get_usage()? Если нет, вы должны попробовать это в первую очередь. Для получения дополнительной информации нам потребуется ваш исходный код.

0 голосов
/ 17 июня 2010

Мне придется ответить самому себе.

Обновление до PHP 5.3.2 устранило проблему с накоплением мусора при таких больших соотношениях.

Поскольку есть некоторые утечкине могу идентифицировать и сбросить с точки зрения заполнения ресурсов образа GD независимо от того, что я делаю, я решил, что скрипт perl запускает циклы while и исполняет скрипт PHP

system("php /opt/cron/tasks.php");

Кстати PHP всегда очищает буфер / память.

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