PHP 8.3: gc_status дополнительная информацию о GC

Источник: «PHP 8.3: gc_status() returns additional GC information»
С PHP версии 8.3 gc_status возвращает дополнительную информацию о сборщике мусора (GC).

Функция PHP gc_status() возвращает статистику сборщика мусора PHP, например, работает ли сборщик мусора, защищён ли сборщик мусора и какой размер буфера. Эта информация может быть полезной при отладке долго работающих PHP приложений для обнаружения и оптимизации использования памяти.

var_dump(gc_status());

В текущей версии PHP, функция gc_status() возвращает массив с четырьмя ключами:

ПолеТипОписание
runsIntegerКоличество запусков сборщика мусора
collectedIntegerКоличество собранных объектов
thresholdIntegerКоличество корней (roots) в буфере, которое вызовет сборку мусора
rootsIntegerТекущее количество корней (roots) в буфере

В PHP 8.3 функция gc_status() возвращает четыре дополнительных поля:

ПолеТипОписание
runningBooleantrue, если сборщик мусора работает, иначе false
protectedBooleantrue, если сборщик мусора защищён и добавление roots запрещено, иначе false
fullIntegertrue, если размер буфера сборщика мусора превышает GC_MAX_BUF_SIZE. Текущее значение 0x40000000 (= 1024³.)
buffer_sizeIntegerТекущий размер буфера сборщика мусора

Влияние обратной совместимости

В PHP 8.3 функция gc_status() возвращает дополнительные поля в возвращаемом массиве. Никаких изменений в сигнатуре функции или типе возвращаемого значения нет, за исключением четырёх новых полей.

Учитывая, что эта функция возвращает внутренние данные Сборщика Мусора (GC) PHP, возвращаемая информация не может быть получена с помощью пользовательских функций PHP. Это делает невозможным перенос этого изменения на более старые версии PHP.

Дополнительные материалы

Предыдущая Статья

Laravel: Eloquent create() vs Query Builder insert()

Следующая Статья

Laravel: Стандартные ответы API с Responsable классами