У меня есть долго работающий PHP-скрипт, который, похоже, имеет утечку памяти и заставил меня погрузиться в то, как работает сборка мусора в PHP. У меня было несколько вопросов по этому поводу, и, возможно, здесь есть люди, которые достаточно знают о внутренностях, чтобы ответить на них.
Во-первых, мне интересно, какие конкретные переменные попадают в корневой буфер. Только элементы верхнего уровня или в массиве массивов (как, например, в результате запроса) каждый элемент в этом массиве верхнего уровня застрянет там?
Введите код:
$a = [ ['b'=>1234, 'c'=>2345] ];
Есть только "a" в корневом буфере или $ a [0] тоже там?
Что произойдет, если вы получите более 10 тысяч корней? Это перестает собирать в какой-то момент?
Наконец, следует ли мне беспокоиться о 0% эффективности сборок в отчете по сборке мусора xdebug?