gc_status
(PHP 7 >= 7.3.0, PHP 8)
gc_status — Obtém informações sobre o coletor de lixo
Parâmetros
Esta função não possui parâmetros.
Valor Retornado
Retorna um array associativo com os seguintes elementos:
-
"runs"
-
"collected"
-
"threshold"
-
"roots"
-
"running"
-
"protected"
-
"full"
-
"buffer_size"
-
"application_time"
-
"collector_time"
-
"destructor_time"
-
"free_time"
Registro de Alterações
Versão | Descrição |
---|---|
8.3.0 |
gc_status() agora retorna os seguintes campos adicionais:
"running" , "protected" ,
"full" , "buffer_size" ,
"application_time" , "collector_time" ,
"destructor_time" e "free_time" .
|
Exemplos
Example #1 Uso de gc_status()
<?php
// cria árvore de objetos que precisam de coleta de lixo
$a = new stdClass();
$a->b = [];
for ($i = 0; $i < 100000; $i++) {
$b = new stdClass();
$b->a = $a;
$a->b[] = $b;
}
unset($a);
unset($b);
gc_collect_cycles();
var_dump(gc_status());
O exemplo acima produzirá algo semelhante a:
array(4) { ["runs"]=> int(5) ["collected"]=> int(100002) ["threshold"]=> int(50001) ["roots"]=> int(0) }
A saída do exemplo acima no PHP 8.3 é semelhante a:
array(12) { ["running"]=> bool(false) ["protected"]=> bool(false) ["full"]=> bool(false) ["runs"]=> int(5) ["collected"]=> int(100002) ["threshold"]=> int(50001) ["buffer_size"]=> int(131072) ["roots"]=> int(0) ["application_time"]=> float(0.031182458) ["collector_time"]=> float(0.020106291) ["destructor_time"]=> float(0) ["free_time"]=> float(0.003707167) }