gc_status

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

説明

array gc_status()

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

パラメータ

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

戻り値

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

  • "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->= [];
for (
$i 0$i 100000$i++) {
    
$b = new stdClass();
    
$b->$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)
}