ガベージコレクタに関する情報を取得する

# gc_status

(PHP 7 >= 7.3.0, PHP 8)

gc_status — ガベージコレクタに関する情報を取得する

### 説明

function gc_status(): array

ガベージコレクタの現在の状態に関する情報を取得します。

### パラメータ

この関数にはパラメータはありません。

### 戻り値

次の要素を持つ連想配列を返します:

- `"runs"`
- `"collected"`
- `"threshold"`
- `"roots"`
- `"running"`
- `"protected"`
- `"full"`
- `"buffer_size"`
- `"application_time"`
- `"collector_time"`
- `"destructor_time"`
- `"free_time"`

### 変更履歴

バージョン | 説明
--- | ---
8.3.0 | gc_status() は、 以下の追加のフィールドを返すようになりました: `"running"`, `"protected"`, `"full"`, `"buffer_size"`, `"application_time"`, `"collector_time"`, `"destructor_time"`, and `"free_time"`.

### 例

例1 gc_status() の使い方

    <?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());

上の例の出力は、 たとえば以下のようになります。

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

上の例の PHP 8.3 での出力は、たとえば以下のようになります。:

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

### 参考

- ガベージコレクション

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open