Я переношу большое веб-приложение в общую среду веб-хостинга. Приложение написано на PHP 4. Новая среда имеет PHP 5.2.Утечка памяти при переходе с PHP 4 на 5 - любые подсказки?
По какой-то причине приложение пропускает огромное количество памяти при работе в PHP 5.2. Я могу буквально наблюдать за использованием памяти, проходящей через крышу, используя memory_get_usage(), пока не достигнет предела в 64 МБ (что очень велико в общей среде, сайт, используемый для работы с 12 или 16 МБ на PHP 4).
Я подозреваю, что это побочный эффект того, что изменилось в PHP 5, скорее всего, обработка ссылок на объекты в аргументах. Однако поиск конкретного поведения (-ов), вызывающих утечку, чрезвычайно затруднен, так как приложение очень сложное и частично не очень хорошо написано (да, это мое).
Поскольку приложение установлено на общем веб-пространстве, я не могу использовать классические средства отладки (насколько я знаю). Я очень хотел бы не воссоздать окружающую среду на местном уровне, так как я работаю над проектом буквально весь день в течение некоторого времени.
Так что мои вопросы:
Кто-нибудь знает типичные подводные камни PHP4 => 5 переходов, особенно при работе с большим количеством объектов, которые могут быть причиной моей утечки (ы)
Кто-нибудь знает какой-то отладчик-независимый сценарий «графический дайджест» для переменных, используемых PHP, которые могут помочь мне узнать, какие переменные питаются этими огромными объемами памяти?