MOTORIST: так вам нужны эти структуры, вы с ними работаете, или нет? То вы присваиваете d к пустой структуре, то сохраняете в массив. Если сохраняете, то и будет отъедать память, всё работает как вы и хотели.
Скорей всего, один из пакетов использует стандартный лог, который он сам и настроил. Можно решить проблему создав свой экземпляр логгера и настроив его.
littleguga: просто отдавайте страницу с комментариями уже загруженными, если есть в запросе что-то вроде "comments=true". На обычной странице делайте ссылку внизу вместо комментариев на страницу с этим запросом. При помощи js подгружаете комменты на место ссылки. Убогий костыль, но сойдёт.
А как вы делаете, если вам надо изменить одного из потомков? Например, пометить сообщение прочитанным? Сначала пройтись по списку групп, а потом по списку сообщений?