gc status()
Version från den 13 oktober 2024 kl. 07.42 av Admin (diskussion | bidrag) (Skapade sidan med '== gc_status == Hämtar information om skräpsamlarens status === Beskrivning === <pre> gc_status(): array </pre> Hämtar information om skräpsamlarens nuvarande status. === Parametrar === Denna funktion har inga parametrar. === Returnerar === Returnerar en associerad array med följande element: * "runs" - Antal körningar av skräpsamlaren * "collected" - Antal objekt som samlats in * "threshold" - Tröskelvärde för insamling * "roots" - Antal rötter som spårat...')
gc_status
Hämtar information om skräpsamlarens status
Beskrivning
gc_status(): array
Hämtar information om skräpsamlarens nuvarande status.
Parametrar
Denna funktion har inga parametrar.
Returnerar
Returnerar en associerad array med följande element:
- "runs" - Antal körningar av skräpsamlaren
- "collected" - Antal objekt som samlats in
- "threshold" - Tröskelvärde för insamling
- "roots" - Antal rötter som spårats
- "running" - Om skräpsamlaren för närvarande körs
- "protected" - Om skyddade objekt är aktiva
- "full" - Om en fullständig insamling pågår
- "buffer_size" - Buffertstorleken
- "application_time" - Tid tillägnad applikationen
- "collector_time" - Tid tillägnad skräpsamlaren
- "destructor_time" - Tid tillägnad destruktörer
- "free_time" - Tid tillägnad minnesfrigörelse
Ändringslogg
| Version | Beskrivning |
|---|---|
| 8.3.0 | gc_status() returnerar nu de ytterligare fälten: "running", "protected", "full", "buffer_size", "application_time", "collector_time", "destructor_time" och "free_time". |
Exempel
Exempel #1 Användning av gc_status()
<?php
// skapa objektträd som behöver samlas in av gc
$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());
Resultatet av exemplet kan vara liknande följande:
array(4) {
["runs"]=>
int(5)
["collected"]=>
int(100002)
["threshold"]=>
int(50001)
["roots"]=>
int(0)
}
Utdataversionen för PHP 8.3 kan se ut som följer:
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)
}