Я понимаю, что реакция на коленный рефлекс на этот вопрос заключается в том, что "вы нет", но выслушайте меня.
В основном я запускаю систему активной записи на SQL и для предотвращения дублирования объектов для одной и той же строки базы данных я сохраняю "массив" в factory с каждым загруженным в данный момент объектом (с использованием автоинкремента) id 'в качестве ключа).
Проблема в том, что когда я пытаюсь обработать 90 000+ строк через эту систему в нечетном случае, PHP сталкивается с проблемами памяти. Это очень легко решить, запустив сбор мусора каждые несколько сотен строк, но, к сожалению, поскольку factory хранит копию каждого объекта - сборка мусора PHP не освобождает ни один из этих узлов.
Единственное решение, о котором я могу думать, - проверить, равен ли ссылочный счет объектов, хранящихся в factory, один (т.е. ничто не ссылается на этот класс), и если да, освободите их. Это решит мою проблему, однако PHP не имеет метода подсчета ссылок? (кроме debug_zval_dump, но это почти невозможно).