Что входит в корневой буфер PHP и что происходит, если он становится больше 10K - PullRequest
0 голосов
/ 18 марта 2019

У меня есть долго работающий PHP-скрипт, который, похоже, имеет утечку памяти и заставил меня погрузиться в то, как работает сборка мусора в PHP. У меня было несколько вопросов по этому поводу, и, возможно, здесь есть люди, которые достаточно знают о внутренностях, чтобы ответить на них.

Во-первых, мне интересно, какие конкретные переменные попадают в корневой буфер. Только элементы верхнего уровня или в массиве массивов (как, например, в результате запроса) каждый элемент в этом массиве верхнего уровня застрянет там?

Введите код:

$a = [  ['b'=>1234, 'c'=>2345] ];

Есть только "a" в корневом буфере или $ a [0] тоже там?

Что произойдет, если вы получите более 10 тысяч корней? Это перестает собирать в какой-то момент?

Наконец, следует ли мне беспокоиться о 0% эффективности сборок в отчете по сборке мусора xdebug?

...