gc_status

Gets information about the garbage collector

&reftitle.description; `array` `gc_status`

Gets information about the current state of the garbage collector.

&reftitle.parameters; &no.function.parameters;
&reftitle.returnvalues;

Returns an associative array with the following elements:

- `"runs"`

- `"collected"`

- `"threshold"`

- `"roots"`

- `"running"`

- `"protected"`

- `"full"`

- `"buffer_size"`

- `"application_time"`

- `"collector_time"`

- `"destructor_time"`

- `"free_time"`

&reftitle.changelog;

&Version; | &Description;
8.3.0 | `gc_status` now returns the following additional fields: `"running"`, `"protected"`, `"full"`, `"buffer_size"`, `"application_time"`, `"collector_time"`, `"destructor_time"`, and `"free_time"`.

&reftitle.examples;

### `gc_status` Usage

    <?php

    // create object tree that needs gc collection
    $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());

&example.outputs.similar;

    array(4) {
      ["runs"]=>
      int(5)
      ["collected"]=>
      int(100002)
      ["threshold"]=>
      int(50001)
      ["roots"]=>
      int(0)
    }

&example.outputs.83.similar;

    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)
    }

&reftitle.seealso;

- Garbage Collection