Есть ли способ узнать, какие объекты и сколько их у меня в памяти?

У меня есть php-скрипт, который использует Doctrine2 и Zend для вычисления некоторых вещей из базы данных и отправки писем для 30 000 пользователей.

В моем сценарии происходит утечка памяти, и я хочу знать, какие объекты потребляют эту память, и, если возможно, кто хранит на них ссылку (тем самым не позволяя их освободить).

Я использую php 5.3.x, поэтому простые круговые ссылки не должны быть проблемой.

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

Я пробовал вручную добавлять memory_get_usage до и после важных функций. Но единственный вывод, который я получил, заключался в том, что я теряю около 400 тыс. На пользователя и 3000 пользователей раз, что дает мне доступный 1 ГБ.

Есть ли другие способы узнать, где и почему происходит утечка памяти? Спасибо

6
задан Lightness Races with Monica 5 October 2011 в 23:49
поделиться