В настоящее время у меня есть PHP CLI-скрипт с использованием Zend Framework, который, как кажется, использует все больший объем памяти.  Он перемещается по большому набору моделей, полученных из базы данных в партиях по 1000. Вызовы memory_get_usage() показывают, что использование памяти в скрипте всегда увеличивается. 
  Это несмотря на то, что я не могу отменить модель после каждой итерации и фактически использовать array_shift() чтобы уменьшить размер массива моделей на каждой итерации. 
Мой вопрос в том, что в PHP есть способ обнаружить размер в памяти переменной, чтобы я мог отслеживать, что растет?
У меня нет решения для проверки размера каждой переменной, но если вы используете доктрину, то это, вероятно, причина
вам нужно использовать
  $Elem->free(true); 
Другое дело – обновить до 5.3 (если вы еще этого не сделаете), сборщик мусора 5.3 лучше
Нет. Вероятно, вы ищете память, которая не освобождена, например, вы отсоединили переменную или удалили ссылку, а сборщик мусора еще не выпустил связанный блок в памяти.
Вы можете попробовать Zend Server 5 (вам нужна коммерческая версия) для mem-profile вашего приложения. Он имеет отслеживание кода . Я не знаю, может ли это позволить вам обнаружить утечки памяти.
Также см:
  Я не знаю, насколько это точно, но я получил число, используя apc_add('variable_name', $var);  ,  Затем я apc.php к apc.php в записи пользовательского кэша и просматриваю столбец размера. 
Разумеется, для этого вам необходимо установить и запустить APC. 🙂
Вот фрагмент кода, который я нашел в Weberdev
 <?php function array_size($a){ $size = 0; while(list($k, $v) = each($a)){ $size += is_array($v) ? array_size($v) : strlen($v); } return $size; } ?> 
Он получает размер данного массива в байтах. Это то, что вы имели в виду?